"""
单例模式 要实现 的最终效果:
无论创建多少次对象 ( 类名() ),创建出来的对象,始终都只有一个,这些对象名都指向同一个内存地址
King.__instance = object.__new__(cls) # 每一次执行object.__new__(cls)都会返回一个新对象,所以,应该把第一次创建出来 的这个对象(的引用)保存起来,当第二次第三次...跑__new__的时候,返回的都是第一次创建时候保存着的那个对象
"""
class King(object):
__instance = None # 用来存放第一次创建出来的这个对象,None表示 没有指向
__isFirst = True
def __new__(cls, name, age):
if King.__instance == None:
King.__instance = object.__new__(cls)
return King.__instance
def __init__(self, name, age):
if King.__isFirst:
self.name = name
self.age = age
King.__isFirst = False
king01 = King("嬴政", 40)
print(king01.name)
king02 = King("秦始皇", 45)
king03 = King("秦始皇02", 41)
print(king01.name)
print(king03.age)
网友评论