定義:保證一個類只有一個實例,並提供一個訪問它的全局訪問點。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)