用戶69288316
在Python中有如下方式實現單例模式(我能夠想到的方式):
通過模塊
使用__new__
使用裝飾器
使用靜態方法
下面依次介紹一下
使用模塊實現單例模式
python的模塊就是天然的單例模式, 模塊在第一次導入時, 生成.pyc文件, 以後就直接加載.pyc文件了. 如此, 我們直接將類放到模塊中即可實現.
新建 MyTest.py文件, 內容如下:
要使用該單例類, 如下引入即可:
使用__new__實現單例模式
為了使類只能出現一個實例,我們可以使用__new__方法來控制實例的創建過程, 該方法是對象在實例化時調用的第一個方法, 實現代碼如下:
返回True
使用裝飾器實現單例模式
我們知道,裝飾器可以動態的修改一個類或函數的功能。這裡,我們也可以使用裝飾器來裝飾某個類,使其只能生成一個實例:
上面定義了一個裝飾器 singleton, 新建類的實例會啟用裝飾器方法, 通過此方法實現了單例模式
使用靜態方法實現單例模式
通過調用類方法實現單例模式, 代碼如下:
以上就是我能夠想到的Python實現單例模式的幾種方式.