最簡單的Python單例模式程式碼
阿新 • • 發佈:2018-12-17
廢話不扯 直接上程式碼:
# 例項化一個單例 class Singleton(object): __instance = None __first_init = True def __new__(cls, age, name): ''' 如果類屬性__instance的值為None,那麼就建立一個物件,並且賦值為這個物件的引用 保證下次呼叫這個方法時能夠知道之前已經建立過物件了,這樣就保證了只有1個物件 ''' if not cls.__instance: # return super(Singleton, cls).__new__(cls) cls.__instance = super(Singleton, cls).__new__(cls) # cls.__instance = object.__new__(cls) return cls.__instance # def __init__(self,age,name): # self.age = age # self.name = name def __init__(self, age, name): if self.__first_init: self.age = age self.name = name Singleton.__first_init = False a = Singleton(18, "laowang") print(id(a)) b = Singleton(8, "laozhang") print(id(b)) print(a.age, a.name) print(b.age, b.name)