單例模式:確保乙個類只有乙個例項,並且提供乙個訪問它的全域性方法
class
singleton
(object):
__instance =
none
__isfirstinit =
false\
def__new__
(cls, name):if
not cls.__instance:
singleton.__instance =
super()
.__new__(cls)
return cls.__instance
def__init__
(self,name):if
not self.__isfirstinit:
self.__name = name
singleton.__isfirstinit =
true
;def
getname
(self)
:return self.__name
deftest()
: tom = singleton(
"tom"
) kate = singleton(
"kate"
)print
(tom.getname())
print
(kate.getname())
print
("id(tom)",id
(tom)
)print
("id(kate)",id
(kate)
)test(
)
執行結果:
tom
tomid(tom) 900466049280
id(kate) 900466049280
__new __負責建立物件, __init __負責物件的初始化
__new __是類的方法,通過類名例項化物件的時候自動呼叫, 建立乙個例項後返回這個例項物件,並且將其傳遞給__init __ 方法中的self引數。 __init __ 是物件方法,在每一次例項化物件之後呼叫。
aaa
python設計模式 單例模式
一 什麼是單例模式單例模式 singleton pattern 是一種常用的軟體設計模式,該模式的主要目的是確保某乙個類只有乙個例項存在。當你希望在整個系統中,某個類只能出現乙個例項時,單例物件就能派上用場。二 實現單例的方法 三 模組python 模組在第一次匯入時,會生成 pyc 檔案,當第二次...
python設計模式 單例模式
一 什麼是單例模式 單例模式 singleton pattern 是一種常用的軟體設計模式,該模式的主要目的是確保某乙個類只有乙個例項存在。當你希望在整個系統中,某個類只能出現乙個例項時,單例物件就能派上用場。二 實現單例的方法 三 模組 python 模組在第一次匯入時,會生成 pyc 檔案,當第...
python設計模式 單例模式
的設計模式共有25種,設計模式其實是 無關的。其目的是基於oop的思想,不同應用場景應用不同的設計模式,從而達到簡化 利於擴充套件 提示性能等目的。本文簡述python實現的單例模式場景。簡而言之,單例模式的應用場景是所有例項物件封裝的資料都相同的場景。在這樣的場景下應用單例模式可以減少重複建立物件...