python手寫單例 Python實現單例模式

2021-10-21 05:41:15 字數 885 閱讀 4343

語言是共通的,想要用不同語言實現單例模式,首先要清楚什麼是單例模式,單例模式即乙個類有且僅有乙個例項,那麼通過python怎麼實現乙個類只能有乙個例項呢。

首先先建立乙個類,比如宇宙只有乙個地球

class earth:

pass

a = earth()

print(id(a))

b = earth()

print(id(b))

執行結果如下:

通過列印例項的id可以發現,地球類預設建立了兩個例項。

那麼怎麼能夠讓類只建立乙個例項,而後再建立的例項是返回上一次的物件的引用呢?

我們了解到,python中,乙個類建立物件例項是通過呼叫父類object的 __new__(cls)方法來建立物件的

我們可以通過重寫 __new__(cls)方法去實現類只建立乙個例項

**如下:

class earth(object):

__instance=none #定義乙個類屬性做判斷

def __new__(cls):

if cls.__instance==none:

#如果__instance為空證明是第一次建立例項

#通過父類的__new__(cls)建立例項

cls.__instance==object.__new__(cls)

return  cls.__instance

else:

#返回上乙個物件的引用

return cls.__instance

a = earth()

print(id(a))

b = earth()

print(id(b))

執行結果如下:

可以看出它們id相同,是同乙個物件。

原文:

手寫單例,不心慌

單例模式是最常用到的設計模式之一,熟悉設計模式的朋友對單例模式都不會陌生。一般介紹單例模式的書籍,文章都會提到餓漢式和懶漢式這兩種實現方式。但是除了這兩種方式,實際上還有很多中方式。單例模式是一種常用的軟體設計模式,其定義是單例物件的類只能允許乙個例項存在。許多時候整個系統只需要擁有乙個的全域性物件...

iOS開發 手寫單例

import singleinstance.h implementation singleinstance 類方法命名規範 share類名 default類名 類名 id sharedinstance return instance 也可以使用一次性 static dispatch once t o...

python 單例 Python單例

01.單例設計模式 設計模式 設計模式 是 前人工作的總結和提煉,通常,被人們廣泛流傳的設計模式都是針對 某一特定問題 的成熟的解決方案 使用 設計模式 是為了可重用 讓 更容易被他人理解 保證 可靠性 單例設計模式 目的 讓 類 建立的物件,在系統中 只有 唯一的乙個例項 每一次執行 類名 返回的...