Python 單例設計模式

2022-02-12 19:54:35 字數 1269 閱讀 5617

單例設計模式:

讓類建立的物件,在系統中只有唯一的例項,

使用python類內建的__new__()方法實現,__new__()方法在建立物件時會被自動呼叫,通過重寫__new__()方法,使得無論用型別建立多少個物件,記憶體中都只建立乙個物件的例項,此時__new__()方法必須返回此內建函式的呼叫,及return super().__new__(cls)

class

myclass():

#類屬性,記錄第乙個被建立物件的引用

instance =none

def__new__(cls, *args, **kwargs):

if cls.instance is

none:

cls.instance = super().__new__

(cls)

return

cls.instance

def__init__

(self):

print("

初始化方法!")

若想使得初始化動作只執行一次:

class

myclass():

#類屬性,記錄第乙個被建立物件的引用

instance =none

#記錄是否執行過初始化動作

init_flag =false

def__new__(cls, *args, **kwargs):

if cls.instance is

none:

cls.instance = super().__new__

(cls)

return

cls.instance

def__init__

(self):

ifmyclass.init_flag:

return

print("

初始化方法!")

python設計模式 單例設計模式

樣式一 class musicplayer object instance none 設定類屬性,用來判斷是否有物件得到記憶體空間 init flag false 0表示還沒有初始化 1代表已經初始化 使用內建函式進行空間的分配 def new cls,args,kwargs cls 哪個類呼叫,就...

python設計模式 單例

是一種常用的設計模式,該模式的主要目的是確保某乙個類有且只有乙個例項存在。當希望系統中,某個類只能出現乙個例項時,就可以應用單例物件。每個例項都會占用一定的記憶體資源,且初始化例項時會影響執行效能,所以當整個系統只需乙個例項時,使用單例模式不僅可減少資源占用,而且因為只初始化一次,還可以加快執行效能...

python 單例設計模式

windows系統中的 站,無論任何地方呼叫的 站都指向的是同乙個 站,站的屬性和方法會被重複呼叫,這樣容易產生衝突浪費資源,這種情況下,單例模式就是乙個很好的實現方法。python的設計模式主要有三大類 建立類設計模式 結構類設計模式 行為類設計模式 python與設計模式相關介紹 類是抽象的,先...