day25 python 單例模式

2022-09-17 23:18:18 字數 1072 閱讀 5426

#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 讓類自身負責儲存它的唯一例項。這個類可以保證沒有其他例項可以被建立。即單例模式。多執行緒時的單例模式 加鎖 雙重鎖定。餓漢式...