1.单例模式
class Person(object):
instance = None # 记录创建的对象
is_first_run = True # 如果为 True 则表示是第一次创建对象
def __new__(cls, *args, **kwargs):
if cls.instance == None: # 只有当 instance 没有值的时候才创建新对象
cls.instance = object.__new__(cls)
return cls.instance
def __init__(self, name=''):
if Person.is_first_run:
self.name = name # 只有第一次创建对象,才需要初始化属性
Person.is_first_run = False
def set_name(self, new_name): # 要修改单例模式的属性,可以使用set方法
self.name= new_name
zs = Person('张三')
print(zs.name)
ls = Person()
print(ls.name)
ls.set_name('李四')
print(zs.name)
# 张三
# 张三
# 李四