#author:'haijing'#date:2018/10/28
# class foo:
# def __init__(self,name,age):
# self.name = name
# self.age = age
# obj = foo('haijing',18) #obj為類foo的物件,也稱obj為foo類的例項
# obj1 =foo('haijing',18)
# obj2 = foo('haijing',18) #記憶體位址開闢了三份
#單例模式 單個例項 使用同乙份例項(物件)
class foo:
__v = none #建立靜態字段 可以在類內self.__v做共有屬性呼叫
@classmethod #建立靜態方法get_instance() 可用foo.get_instance()呼叫,而不用建立物件
def get_instance(cls):
if cls.__v: #__v依舊是是foo()的物件
return cls.__v
else:
cls.__v = foo() #執行這一句後,__v就是foo()的物件
return cls.__v
obj1 = foo.get_instance() #建立obj1物件 obj1為類foo的物件
print(obj1) #列印<__main__.foo object at 0x0000025a990a4390>
obj2 = foo.get_instance() #建立obj2物件
print(obj2) #列印<__main__.foo object at 0x0000025a990a4390>
obj2 = foo.get_instance() #建立obj3物件
print(obj2) #列印<__main__.foo object at 0x0000025a990a4390>
#即obj1、obj2和obj3都是同乙個物件
2 5設計模式(單例設計模式)
1.設計模式 23種設計模式。對問題行之有效的解決方式。其實它是一種思想。2.單例設計模式 就是可以保證乙個類在記憶體中的物件唯一性。解決辦法 步驟 1 私有化該類的建構函式。2 通過new在本類中建立乙個本類物件 3 定義乙個公有的方法,將建立的物件返回。例子 1.餓漢式 一上來就吃 設計模式 2...
python單例模式繼承 python單例模式
我們可以使用 new 這個特殊方法。該方法可以建立乙個其所在類的子類的物件。更可喜的是,我們的內建 object 基類實現了 new 方法,所以我們只需讓 sing 類繼承 object 類,就可以利用 object 的 new 方法來建立 sing 物件了。classsing object def...
單例模式 python
單例模式 保證乙個類僅有乙個例項,並提供乙個訪問它的全域性訪問點。實現 某個類只有乙個例項 途徑 1 讓乙個全域性變數使得乙個物件被訪問,但是它不能防止外部例項化多個物件。2 讓類自身負責儲存它的唯一例項。這個類可以保證沒有其他例項可以被建立。即單例模式。多執行緒時的單例模式 加鎖 雙重鎖定。餓漢式...