# 单例模式 控制类只能创建一个实例对象
class Person(object):
instance = None # 创建一个值为None的类属性为0
is_first_run = True # 如果值为True说明是第一次创建对象,若为False说明不是第一次创建对象
def __new__(cls, *args, **kwargs):
if cls.instance == None:
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): # 如果要修改单例对象的属性,最好是通过调用方法
self.name = new_name