Python中的单例模式
在 Python 中,我们可以用多种方法来实现单例模式: 使用模块 使用 __new__ 使用装饰器(decorator) 使用元类(metaclass) # mysingleton.py class My_Singleton(object): def foo(self): pass my_singleton = My_Singleton() ##############调用 from mysingleton import my_singleton my_singleton.foo() 使用 __new__ 为了使类只能出现一个实例,我们可以使用 __new__ 来控制实例的创建过程 class Singleton(object): _instance = None def __new__(cls, *args, **kwargs): if not cls._instance: cls._instance = super(Singleton, cls).__new__(cls, *args, **kwargs) return cls._instance class MyClass(Singleton): c = 1 a=MyClass() b=MyClass() print(a==b) print(a is b) print(id(a),id(b)) """ True True