最近在看《python演算法教程》,今天看到了乙個新的模式,記錄下來。
引用:
當樹這樣的資料結構被原型化(或者乃至於被定型)時,它往往會時乙個非常有用而靈活的型別,允許我們在其構造器中設定任何屬性。在這些情況下,我們會需要用到一種叫做「bunch」的設計模式。
class bunch(dict):
def __init__(self, *args, **kwargs):
super(bunch, self).__init__(*args, **kwargs)
self.__dict__ = self
先舉個例子簡單的使用下這個bunch類
>>> x = bunch(a="1", b="2", c="3")
>>> print (x.a)
'1'>>> print (x.b)
'2'>>> print (x.c)
'3'
由於這個類直接繼承dict類,所以我們可以自然而然地獲得dict類地大量功能,比如對鍵/值的遍歷,或者簡單查詢乙個屬性是否存在。
t = bunch
t = t(left=t(left="1",right="2"),right=t(left="3",right="4"))
>>> t.left
>>> t.left.right
'2'>>> t['left']['right']
'2'>>> 'left' in t.right
true
>>> '3' in t.right
false
這樣就構建好了樹型結構,因為bunch模式非常靈活,其屬性可以動態設定,所以可以用該模型實現很多態別。 Python中的Bunch模式
引用 當樹這樣的資料結構被原型化 或者乃至於被定型 時,它往往會時乙個非常有用而靈活的型別,允許我們在其構造器中設定任何屬性。在這些情況下,我們會需要用到一種叫做 bunch 的設計模式。class bunch dict def init self,args,kwargs super bunch,s...
python中的單例模式
單例模式 顧名思義是只有乙個例項記憶體位址,根據意思理解就是不論建立多少個例項物件,都只有乙個記憶體位址,單例模式是基於類的,是例項類物件,有別與 init init 是例項化物件.如下 domeclass single instance object instance none def init ...
Python 中的單例模式
單例就是解決在記憶體中始終只有乙個例項物件的問題,在python中實現起來很簡單,python中是通過new函式來分配記憶體的,舉個栗子 class musicplayer instance none def new cls,args,kwargs if cls.instance is none c...