使用装饰器的方式实现python的单例模式
def singleton(cls, *args, **kw): instances = {} def _singleton(): if cls not in instances: instances[cls] = cls(*args, **kw) return instances[cls] return _singleton @singleton class MyClass(object): ......
说明:
模块在一个Python应用程序中只有一份,本身就是单例的,将所需要的属性和方法,直接暴露在模块中的全局变量和方法,也可以实现单例。
参见:Is there a simple, elegant way to define Singletons in Python? (Stack Overflow)