class Dog(object):
__instance = None
__init_flag = False #定义一个实例标志,第一次创建对象后设为Treue
def __new__(cls, name):
if cls.__instance == None:
cls.__instance = object.__new__(cls) #创建对象引用
return cls.__instance #将刚刚创建对象的引用返回
else:
#return 上一个创建的对象的引用
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)
python 单例(3) 只创建一个对象
最新推荐文章于 2024-01-08 09:40:33 发布