好用的 Bunch

「Bunch」设计模式:

Bunch Pattern 字面意思大概是指链式的束式结构.主要用于存储松散的数据。

它能让我们以命令行参数的形式创建相关对象,并设置任何属性。

class Bunch(dict):
    
    def __init__(self, *args, **kwds):
        super().__init__(*args, **kwds)
        self.__dict__ = self
x = Bunch(age="54", address="Beijing")

x.age
'54'
x.address
'Beijing'

由于它继承自 dict 类,我们可以自然而然获得大量相关内容,如对于相关键值/属性值的遍历,或者简单查询一个属性是否存在。

T = Bunch
t = T(left=T(left='a',right='b'), right=T(left='c'))
t.left
{'left': 'a', 'right': 'b'}
t.left.right
'b'
t['left']['right']
'b'
"left" in t.right
True
"right"in t.right
False

上面的实现是不是有点像二叉树?是不是很神奇?

更多精彩内容见一个使用 Bunch 的实现:定制 AI 专属数据库

你可能感兴趣的:(好用的 Bunch)