單例模式(mark)
阿新 • • 發佈:2018-11-27
# 單例模式 控制類只能建立一個例項物件
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