乙個類始終只有乙個例項
當你第一次例項化這個類的時候,就建立乙個例項化得物件
當你之後再來例項化的時候,就用之前建立的物件
classa:
__instance =false
def__ini__
(self,name,age):
self.name =name
self.age =age
def__new__(cls,*args,*kwargs):
if cls.__instance
:
return cls.__instance
cls.
__instance = object.__new__(a,*args,*kwargs)
return cls.__instance
egon = a('
egg',38)
nezha = a('
nazha
',25)
#此時nezha 覆蓋了 egon
__eq__
classa:
def__ini__
(self,name):
self.name =name
def__eq__
(self,other):
if self.name =other.name:
return
true
else
: retrun false
ob1 = a('
egg'
)ob2 = a('
egg'
)
print (ob1 == ob2) #
結果 true
__hash__ : hash()方法實現
# set 依賴物件的hash eq方法
python設計模式 單例模式
一 什麼是單例模式單例模式 singleton pattern 是一種常用的軟體設計模式,該模式的主要目的是確保某乙個類只有乙個例項存在。當你希望在整個系統中,某個類只能出現乙個例項時,單例物件就能派上用場。二 實現單例的方法 三 模組python 模組在第一次匯入時,會生成 pyc 檔案,當第二次...
python設計模式 單例模式
一 什麼是單例模式 單例模式 singleton pattern 是一種常用的軟體設計模式,該模式的主要目的是確保某乙個類只有乙個例項存在。當你希望在整個系統中,某個類只能出現乙個例項時,單例物件就能派上用場。二 實現單例的方法 三 模組 python 模組在第一次匯入時,會生成 pyc 檔案,當第...
Python設計模式 單例模式
單例模式 確保乙個類只有乙個例項,並且提供乙個訪問它的全域性方法 class singleton object instance none isfirstinit false def new cls,name if not cls.instance singleton.instance super ...