程序设计模式

设计模式

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>

# 两个对象都是同一个内存地址,也就相当于不管创建多少个对象,都是同一个实例

猜你喜欢

转载自www.cnblogs.com/Hybb/p/11518907.html