单例模式

单例模式就是单个对象(单个实例)

 

 

可以看到创建了三个对象

 单例模式:

class Sigleton:
    # 私有化
    __instance = None

    # 重写
    def __new__(cls):
        print("------> new")
        if cls.__instance is None:
            cls.__instance = object.__new__(cls)
            return cls.__instance

        else:
            return cls.__instance


s = Sigleton()
s1 = Sigleton()
print(s)
print(s1)

 

 可以看到始终使用的是同一个内存空间

 object.__new__(cls)的作用就是,产生一个内存空间,

通过cls.instance = object.__new__(cls)将产生的内存空间的地址赋值给instance

return cls.__instance会将地址扔给__init__(self)

原文地址:https://www.cnblogs.com/GumpYan/p/12822023.html