1:使用模块Python的模块就是天然的单例模式。因为模块在第一次导入时,会生成 .pyc 文件,当第二次导入时,就会直接加载 .pyc 文件,而不会再次执行模块代码。因此,我们只需把相关的函数和数据定义在一个模块中,就可以获得一个单例对象了。例如:class V1(object): def foo(self) passV1 = V1()将上面代码保存在文件test.py,要使用时,直接在其他文件中导入此文件中的对象,这个对象既是单例模式的对象如:from a import V12:使用装饰器def Singleton(cls): _instance = {} def _singleton(*args, **kargs): if cls not in _instance: _instance[cls] = cls(*args, **kargs) return _instance[cls] return _singleton@Singletonclass A(object): a = 1 def __init__(self, x=0): self.x = xa1 = A(2)a2 = A(3)3:使用类4:基于__new__方法实现当我们实例化一个对象时,是先执行了类的__new__方法当:(我们没写时,默认调用object.__new__),实例化对象;然后再执行类的__init__方法,对这个对象进行初始化,所有我们可以基于这个,实现单例模式