好用的 Bunch

作者: 水之心 | 来源:发表于2018-06-28 13:07 被阅读1次

    「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

        本文链接:https://www.haomeiwen.com/subject/fyjgyftx.html