Python -- 单例模式

使用装饰器的方式实现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

你可能感兴趣的:(Python -- 单例模式)