本文实例讲述了Python 单例设计模式用法。分享给大家供大家参考,具体如下:
demo.py(单例):
class MusicPlayer(object): # 类属性 记录对象引用 instance = None def __new__(cls, *args, **kwargs): # 1. 判断类属性是否是空对象 if cls.instance is None: # 2. 调用父类的方法,为第一个对象分配空间 cls.instance = super().__new__(cls) # 3. 返回类属性保存的对象引用 return cls.instance # 创建多个对象 player1 = MusicPlayer() print(player1) player2 = MusicPlayer() print(player2)
运行结果:
<__main__.MusicPlayer object at 0x019558B0>
<__main__.MusicPlayer object at 0x019558B0>
demo.py(__init__初始化方法只执行一次):
class MusicPlayer(object): # 类属性 记录对象引用 instance = None # 标记是否执行过初始化动作 init_flag = False def __new__(cls, *args, **kwargs): # 1. 判断类属性是否是空对象 if cls.instance is None: # 2. 调用父类的方法,为第一个对象分配空间 cls.instance = super().__new__(cls) # 3. 返回类属性保存的对象引用 return cls.instance def __init__(self): # 1. 判断是否执行过初始化动作 if MusicPlayer.init_flag: return # 2. 如果没有执行过,再执行初始化动作 print("初始化播放器") # 3. 修改类属性的标记 MusicPlayer.init_flag = True # 创建多个对象 player1 = MusicPlayer() print(player1) player2 = MusicPlayer() print(player2)
运行结果:
初始化播放器
<__main__.MusicPlayer object at 0x01795B30>
<__main__.MusicPlayer object at 0x01795B30>
更多关于Python相关内容可查看本站专题:《Python数据结构与算法教程》、《Python Socket编程技巧总结》、《Python函数使用技巧总结》、《Python字符串操作技巧汇总》及《Python入门与进阶经典教程》
希望本文所述对大家Python程序设计有所帮助。
本文向大家介绍Python单例模式实例分析,包括了Python单例模式实例分析的使用技巧和注意事项,需要的朋友参考一下 本文实例讲述了Python单例模式的使用方法。分享给大家供大家参考。具体如下: 方法一 1.禁用__init__方法,不能直接创建对象。 2.__instance,单例对象私有化。 3.@staticmethod,静态方法,通过类名直接调用。 4.__lock,代码锁。 5.继承
本文向大家介绍php单态设计模式(单例模式)实例,包括了php单态设计模式(单例模式)实例的使用技巧和注意事项,需要的朋友参考一下 单态设计模式也叫单例模式: 1.单态设计模式含义: 单态模式的主要作用是保证在面向对象编程设计中,一个类只能有一个实例对象存在。作为对象的创建模式,单例模式确保某一个类只有一个实例,而且自行实例化并向整个系统全局地提供这个实例。它不会创建实例副本,而是会向单例类内部存
本文向大家介绍JavaScript设计模式之单例模式实例,包括了JavaScript设计模式之单例模式实例的使用技巧和注意事项,需要的朋友参考一下 《Practical Common Lisp》的作者 Peter Seibel 曾说,如果你需要一种模式,那一定是哪里出了问题。他所说的问题是指因为语言的天生缺陷,不得不去寻求和总结一种通用的解决方案。 不管是弱类型或强类型,静态或动态语言,命令式或说
本文向大家介绍Android 单例模式 Singleton 简单实例设计模式解析,包括了Android 单例模式 Singleton 简单实例设计模式解析的使用技巧和注意事项,需要的朋友参考一下 单例模式 Singleton 简单实例设计模式解析 前言 今天我来全面总结一下Android开发中最常用的设计模式 - 单例模式。 关于设计模式的介绍,可以看下我之前写的:1分钟全面了解“设计模式” 目录
单例(Singleton) Intent 确保一个类只有一个实例,并提供该实例的全局访问点。 Class Diagram 使用一个私有构造函数、一个私有静态变量以及一个公有静态函数来实现。 私有构造函数保证了不能通过构造函数来创建对象实例,只能通过公有静态函数返回唯一的私有静态变量。 Implementation Ⅰ 懒汉式-线程不安全 以下实现中,私有静态变量 uniqueInstance 被延
单例模式,也叫单子模式,是一种常用的软件设计模式。在应用这个模式时, 单例对象的类必须保证只有一个实例存在。许多时候整个系统只需要拥有一个 全局对象,这样有利于我们协调系统整体的行为。 --以上来自维基百科 从定义上来看,这会是一个很有用的避免冲突的设计模式,相当于把所有同样资源的调用 都交给了一个资源代理。那么 Python 中该如何实现这一模式呢? 装饰器 所有资源资源调用者都是同一个对象,我
本文向大家介绍C#设计模式之单例模式实例讲解,包括了C#设计模式之单例模式实例讲解的使用技巧和注意事项,需要的朋友参考一下 前言 最近开始花点心思研究下设计模式,主要还是让自己写的代码可重用性高、保证代码可靠性。所谓设计模式,我找了下定义:是一套被反复使用、多数人知晓的、经过分类编目的、代码设计经验的总结。毫无疑问,设计模式于己于他人于系统都是多赢的;设计模式使代码编制真正工程化;设计模式是软件工
本文向大家介绍PHP设计模式之单例模式定义与用法分析,包括了PHP设计模式之单例模式定义与用法分析的使用技巧和注意事项,需要的朋友参考一下 本文实例分析了PHP设计模式之单例模式。分享给大家供大家参考,具体如下: 单例模式(Singleton Pattern 单件模式或单元素模式),是常见的一种设计模式,它有三个特点 1.只能有一个实例 2.必须自行创建这个实例 3.必须给其他对象提供这一实例 下