程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 更多編程語言 >> Python >> Python3單例模式示例

Python3單例模式示例

編輯:Python

當我們理解了Python的__new__方法後,我們還可以利用它來做一些其他有趣的事情,比如實現設計模式中的單例模式(singleton) 。

因為類每一次實例化後產生的過程都是通過__new__來控制的,所以通過重載__new__方法,我們可以很簡單的實現單例模式。

先看在python3中怎麼實現單例模式:

 

class Singleton(object):
def __new__(cls):
if not hasattr(cls, 'instance'):
cls.instance = super(Singleton, cls).__new__(cls)
return cls.instance

if __name__ == '__main__':
a = Singleton()
b = Singleton()
print(id(a))
print(id(b))

輸出的id相同,這裡被實例化出來的a和b都指向同一個對象,說明在內存中只存在一個實例化的對象,通過重寫new方法,這樣的單例模式實現起來簡單。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved