Python物件導向程式設計之單例設計模式

2021-10-02 11:58:32 字數 778 閱讀 8440

設計模式 :

設計模式是前人工作的總結和提煉,通常,被人們廣泛流傳的設計模式都 是針對某一特定問題的成熟解決方案 ,

使用設計模式是為了可重用**,讓**更容易被他人理解, 保證**可靠性。

單例設計模式

目的:讓類建立物件,在系統中只有唯一的乙個例項(物件)

每一次執行類名()返回的物件 記憶體位址是相同的

__new__方法:

我們用 類名. 的方式建立物件的時候,python直譯器會幫我們做兩件事情,是哪兩件事情呢?

1.為物件分配空間 2.物件初始化

使用類名()建立物件時,python的直譯器首先會呼叫__new__方法為物件分配空間

__new__是乙個由object基類提供的內建的靜態方法,主要有兩個作用:

python的直譯器獲得物件的引用後,將引用作為第乙個引數,傳遞給__init__方法

#__new__:負責給物件分配空間 __init__(初始化方法)負責給物件初始化

我們要重寫new方法,使用類名()建立物件的時候,返回的都是同乙個位址

重寫__new__方法的**非常固定:

重寫__new__方法一定要return object.__new__(cls)

否則python的直譯器得不到分配了空間的物件引用,就不會呼叫物件的初始化方法

python物件導向程式設計 單例

單例設計模式 站物件 印表機物件 python的直譯器獲得物件的引用後,將引用作為第乙個引數,傳遞給 init 方法 重寫 new 方法 的 非常固定!示例 class music object def new cls,args,kwargs 如果不返回任何結果,return super new c...

Python 物件導向 單例

單例設計模式 重寫 new 方法 的 非常固定!如果不返回任何結果,定義類屬性記錄單例物件引用 instance none def new cls,args,kwargs 1.判斷類屬性是否已經被賦值 if cls.instance is none cls.instance super new cl...

Python物件導向 17 單例

單例設計模式 設計模式 單例設計模式 new 方法class musicplayer object def new cls,args,kwargs 建立物件時 new方法會被自動呼叫 print 建立物件 分配空間 為物件分配空間 instance super new cls 返回物件的引用 ret...