定义:保证一个类只有一个实例,并提供一个访问它的全局访问点。it
适用场景:当一个类只能有一个实例而客户能够从一个众所周知的访问点访问它时。class
优势:对惟一实例的受控访问,至关于全局变量,可是又能够防止此变量被篡改。变量
代码实现:object
class Singleton(object): # 若是该类已经有了一个实例则直接返回,不然建立一个全局惟一的实例 def __new__(cls, *args, **kwargs): if not hasattr(cls, '_instance'): cls._instance = super(Singleton, cls).__new__(cls) return cls._instance class MyClass(Singleton): def __init__(self, name): if name: self.name = name if __name__ == '__main__': mc = MyClass('mesie') print(mc.name)