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