Python中的單例

來源:互聯網
上載者:User

標籤:Python   單例   

單例:是指建立對象時,在同一個類中只能訪問同一個記憶體位址,
作用:單例可以實現不通模組之間的資料共用
#定義單列類
class Singleton(object):
#定義類屬性儲存建立對象結果
singleton = None
#是否第一次初始化
is_first = False
def new(cls, *args, **kwargs):
#判斷類屬性是否為None,非空表示要建立對象
if not cls. singleton:
#儲存建立對象
cls.
singleton = object. new(cls)
#對象建立以後以及第一次建立都需要把結果返回
return cls. singleton
def
init (self, name, age):
#判斷是否是第一次進行初始化,不是第一次,則不再初始化
#一般我們只需要對
new 進行判斷,確定每次建立指向的記憶體位址不變
if not self.
class .is_first:
self.name = name
self.age = age
#初始化完成,設定成已經初始化狀態
self. class.__is_first = True

代碼運行結果如下:

Python中的單例

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.