Python 單例設計模式用法例項分析

2022-10-04 16:09:24 字數 1366 閱讀 1586

demo.py(單例):

class musicplayer(object):

# 類屬性 記錄物件引用

instance = none

def __new__(cls, *args, **kwargs):

# 1. 判斷類屬性是否是空物件

if cls.instance is none:

# 2. 呼叫父類的方法,為第乙個物件分配空間

cls.instance = super().__new__(cls)

# 3. 返回類屬性儲存的物件引用

return cls.instance

# 建立多個物件

player1 = musicplayer()

print(player1)

player2 = musicplayer()

print(player2)

執行結果:

<__main__.musicplayer object at>

<__main__.musicplayer object at>

demo.py(__init__初始化方法只執行一次):

c musicplayer(object):

# 類屬性 記錄物件引用

instance = none

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

init_flag = false

def __new__(cls, *args, **kwargs):

# 1. 判斷類屬性是否是空物件

if cls.instance is none:

# 2. 呼叫父類的方法,為第乙個物件分配空間

cls.instance = super().__new__(cls)

# 3. 返回類屬性儲存的物件引用

return cls.instance

def __init__(self):

# 1. 判斷是否執行過初始化動作

if musicplayer.init_flag:

return

# 2. 如果沒有執行過,再執行初始化動作

print("初始化**器")

# 3. 修改類屬性的標記

musicplayer.init_flag = true

# 建立多個物件www.cppcns.com

player1 = musicplayer()

print(player1)

player2 = musicplayer()

print(player2)

執行結果:

初始化**器

<__main__.musicplayer object at>

<__main__.musicplayer object at>

Python設計模式 工廠模式 單例模式的實現

設計模式是物件導向語言特有的內容,設計模式有很多種,比較流行的是gof23種設計模式。通過模式實現了多種分離,大型的專案中採用模式實現 常用的設計模式 工廠模式和單例模式 該模式實現了建立者和呼叫者的分離,使用專門的工廠類將選擇實現類 建立物件進行統一的管理和控制 測試工廠模式 class ca c...

設計模式之單例模式 Singleton C 實現

特點 1.建構函式 私有化,因此不能直接定義乙個該類的物件 private csingle 2.定義乙個型別為 該類本身的指標 的乙個靜態成員 static csingleton m singleinstance 3.定義乙個返回型別為 該類本身的指標 的乙個靜態成員函式 static csingl...

python設計模式 單例設計模式

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