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



可以看到创建了三个对象
单例模式:
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)