工作原理:
1. 分配内存空间
2. 返回内存地址
重写__new__方法
class Test(object): def __new__(cls, *args, **kwargs): # 1. 创建对象时,new方法会自动调用 print(‘创建对象,分配内存空间‘) # 2. 为对象分配空间 result = super().__new__(cls) # 因为父类new方法是一个静态方法,所以重写时,要重新把cls传参给父类 # 3. 返回结果 return result def __init__(self, name): self.name = name # 创建对象验证 t = Test(‘yeyu‘)
单实例案例
class MusicPlayer(object): instance = None def __new__(cls, *args, **kwargs): # 判断内存地址为空,就创建。 if cls.instance is None: cls.instance = super().__new__(cls) return cls.instance m1 = MusicPlayer() m2 = MusicPlayer() print(m1) print(m2)
单实例实现一次初始化
原文:https://www.cnblogs.com/yeyu1314/p/12566006.html