'''
單例(Singleton)
單例是一種 設計模式 ,應用該模式的類只會生成一個實例。
單例模式保證了在程序的不同位置都 可以且僅可以取到同一個對象實例 :如果實例不存在,會創建一個實例;如果已存在就會返回這個實例。
因為單例是一個類,所以你也可以為其提供相應的操作方法,以便于對這個實例進行管理。
舉個例子來說,比如你開發一款游戲軟件,游戲中需要有“場景管理器”這樣一種東西,用來管理游戲場景的切換、資源載入、網絡連接等等任務。
這個管理器需要有多種方法和屬性,在代碼中很多地方會被調用,且被調用的必須是同一個管理器,否則既容易產生沖突,也會浪費資源。
這種情況下,單例模式就是一個很好的實現方法。
單例模式廣泛應用于各種開發場景,對于開發者而言是必須掌握的知識點,同時在很多面試中,也是常見問題。
'''
?
class Person:__instance = Nonedef __new__(cls, *args, **kwargs):if cls.__instance is None:cls.__instance = object.__new__(cls, *args, **kwargs)return cls.__instancedef __init__(self,a):print('---->init')self.a = ap1 = Person(1)
p2 = Person(1)
# p3 = Person()print(id(p1))
print(id(p2))
print(id(p3))