单例模式,无论实例化多少次,实例化的都是首次实例化内容
class Person: __instance = None def __init__(self): self.name = 'nana' def __new__(cls, *args, **kwargs):#__new__在__init__之前执行 if cls.__instance:#判断如果这个实例的值不为空 return cls.__instance #就返回这个实例 cls.__instance = super().__new__(cls)#走到下面说明是第一次实例化,就调用父类 return cls.__instance #然后返回这个实例 p1 = Person() p2 = Person() p1.name = 'www' print(id(p1),id(p2)) #同一个内存地址 print(p2.name) #www
来源:https://www.cnblogs.com/yanyan-/p/12171936.html