程序设计模式
设计模式
23个设计模式 - 宏观
单例模式(Singleton mode)
# 两个实例
class A:
pass
a1 = A()
a2 = A()
print(a1)
print(a2)
# 结果
<__main__.A object at 0x01FE0890>
<__main__.A object at 0x01FE07F0>
# 两个不同的内存地址,相当于创建两个实例
始终只创建一个实例
不管创建多少个对象,都只是一个实例
python创建 单例模式 代码
class Singleton:
__instance = None
def __new__(cls,*args,**kwargs):
if not cls.__instance:
cls.__instance = object.__new__(cls) # 开辟一块空间
return cls.__instance
def __init__(self,name):
self.name = name
obj1 = Singleton('alex')
obj2 = Singleton('mhy')
print(obj1)
print(obj2)
# 结果
<__main__.Singleton object at 0x02FCBEF0>
<__main__.Singleton object at 0x02FCBEF0>
# 两个对象都是同一个内存地址,也就相当于不管创建多少个对象,都是同一个实例