python之一個簡單的單例模式
阿新 • • 發佈:2018-12-12
# from 模組名 import 模組裡的方法 #呼叫一個方法 # from 模組名 import * #呼叫所有方法 #單列模式 一個類建立物件是同一個 class Shopping: '''購物車''' __A=None #私有屬性 私有屬性為了避免外部改值 __has_init=False #預設沒有初始值 def __new__(cls, *args, **kwargs): #魔法方法,建立物件時首先呼叫它,實質建立一個物件地址 #判斷是否建立物件 if cls.__A is None: #沒有建立過,會建立物件,並記錄下來 cls.__A=super().__new__(cls) return cls.__A #返回物件地址 def __init__(self): #單列模式 只應初始化一次 if self.__has_init==False: #沒有初始化 self.total_princ=0 self.__has_init=True #初始化之後 #建立頁面1 cart1=Shopping() cart1.total_princ=200 print(cart1.total_princ) print(cart1) cart2=Shopping() print(cart2.total_princ) print(cart2) #cart1 和cart2 的物件指標,指向同一個物件地址,那麼他們的物件就是同一個 #單例模式下,這個類的物件,有且只有唯一一個。 ''' 單例模式,一個類建立一個物件 物件地址相同就是同一個物件 '''