單例類*****
阿新 • • 發佈:2021-01-20
技術標籤:pythonpython學習經驗總結python類面向物件程式設計
定義
1.一個類智慧例項化一個物件
2.一個類建立物件例項是通過呼叫父類object的__new__(cls)方法來建立物件的,執行__new__先與__init__
寫一個單例類
class Single:
__one = None
def __new__(cls, *args, **kwargs)
if not __one: # 當__one為空的時候,才執行 object.__new__()方法,開闢一個空間
cls.__one = object.__new__(cls) # 開闢一個空間之後,__one即為非空, 再次例項化時不在開闢新空間
return cls.__one
def __init__(self, name, age):
self.name = name
self.age = age
a = Single('1go', 10)
b = Single('2go', 20) # 在同一空間,將a的內容覆蓋
print(a.name)
print(b.name)
執行結果 均為 2go