更多信息请参考 【设计模式】 单例模式含义 保证一个类只有一个实例,并提供一个访问它的全局访问点 单例模式中的角色 单例(Singleton) 单例模式的优点 对唯一实例的受控访问 单
更多信息请参考 【设计模式】
单例模式含义
保证一个类只有一个实例,并提供一个访问它的全局访问点
单例模式中的角色
- 单例(Singleton)
单例模式的优点
- 对唯一实例的受控访问
- 单例相当于全局变量,但防止了命名空间被污染
单例模式实例
代码如下:
class Singleton:def __new__(cls,*args,**kwargs):
if not hasattr(cls,"_instance"):
cls._instance=super(Singleton,cls).__new__(cls)
return cls._instance
class MyClass(Singleton):
def __init__(self,name):
self.name=name
if __name__=="__main__":
a=MyClass("zhangsan")
b=MyClass("lisi")
print(id(a))
print(id(b))
print(a.name)
print(b.name)
执行结果如下:
28049139297602804913929760
lisi
lisi
可以看出a,b是同一个对象,a和b的name属性当然是后赋值的sili