class Dog(object): __instance = None __init_flag = False def __new__(cls, name): if cls.__instance == None: cls.__instance = object.__new__(cls) return cls.__instance else: #返回上一次創建的對象的引用 return cls.__instance def __init__(self,name): if Dog.__init_flag == False: self.name = name Dog.__init_flag = True a = Dog("旺財") print(id(a)) print(a.name) b = Dog("哮天犬") print(id(b)) print(b.name)
打印結果:
2193174953824
旺財
2193174953824
旺財
最后附上圖便於理解 __new__方法的含義
