在网上看了半天python的单例模式,有好几种方法,但是其中一种让我感觉很舒服,是这样的:
用装饰器实现的单例模式:
def singleton(cls):
instances = {}
def getinstance():
if cls not in instances:
instances[cls] = cls()
return instances[cls]
return getinstance
@singleton
class MyClass:
def __init__(self):
self.name= "one"
实例化两次MyClass看一下效果:
m1 = MyClass()
m1.name = "two"
m2 = MyClass()
print m2.name
结果打印出了 “two”。