所谓单例模式就是指,一个类只对应一个实例,便于实现对实例数量的控制。
这里给出一个通用范例,扩展的话自己看着办吧
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的另一个名字而已