Python如何實現單例模式?

用戶69288316


在Python中有如下方式實現單例模式(我能夠想到的方式):

  1. 通過模塊

  2. 使用__new__

  3. 使用裝飾器

  4. 使用靜態方法

下面依次介紹一下

使用模塊實現單例模式

python的模塊就是天然的單例模式, 模塊在第一次導入時, 生成.pyc文件, 以後就直接加載.pyc文件了. 如此, 我們直接將類放到模塊中即可實現.

新建 MyTest.py文件, 內容如下:

要使用該單例類, 如下引入即可:

使用__new__實現單例模式

為了使類只能出現一個實例,我們可以使用__new__方法來控制實例的創建過程, 該方法是對象在實例化時調用的第一個方法, 實現代碼如下:

返回True

使用裝飾器實現單例模式

我們知道,裝飾器可以動態的修改一個類或函數的功能。這裡,我們也可以使用裝飾器來裝飾某個類,使其只能生成一個實例:

上面定義了一個裝飾器 singleton, 新建類的實例會啟用裝飾器方法, 通過此方法實現了單例模式

使用靜態方法實現單例模式

通過調用類方法實現單例模式, 代碼如下:


以上就是我能夠想到的Python實現單例模式的幾種方式.


分享到:


相關文章: