首頁>Club>
4
回覆列表
  • 1 # 菸草的香味

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

    透過模組

    使用__new__

    使用裝飾器

    使用靜態方法

    下面依次介紹一下

    使用模組實現單例模式

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

    新建 MyTest.py檔案, 內容如下:

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

    使用__new__實現單例模式

    為了使類只能出現一個例項,我們可以使用__new__方法來控制例項的建立過程, 該方法是物件在例項化時呼叫的第一個方法, 實現程式碼如下:

    返回True

    使用裝飾器實現單例模式

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

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

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

    透過呼叫類方法實現單例模式, 程式碼如下:

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

  • 中秋節和大豐收的關聯?
  • 加油包投放規範?