所謂單例模式就是指,一個類只對應一個實例,便於實現對實例數量的控制。
這裏給出一個通用範例,擴展的話自己看着辦吧
def singleton(cls):
instances={}
def getinstance(*args,**kw):
if cls not in instances.keys():
instances[cls]=cls(*args,**kw)
return instances[cls]
return getinstance
@singleton
class single(object):
def __init__(self,name):
self.name=name
return
驗證如下:
a=single("name")
b=single("www")
a is b #True
a.name #name
b.name #name
上述過程正好驗證了一個類只對應一個實例,b的設置都會被a的設置覆蓋,因爲b只是對象a的另一個名字而已