python的AttrDict

不解释, 算是分享, 初学python(其实两年前上课就学了, 但一直在焦虑, 啥也没学会, 相当于初学). 下面两个方法都是用于得到AttrDict(dict不能通过d.x访问属性, AttrDict用起来和dict一样, 但是可用通过d.x访问). 第一个不安全, 第二个安全, 但它们都很有意思.

class AttrDict(dict):
    def __init__(self, *args, **kwargs):
        super(AttrDict, self).__init__(*args, **kwargs)
        self.__dict__ = self

这段有意思之处在于揭示了d.x的时候, python是怎么查找x的.

class AttributeDict(dict):
    __slots__ = () 
    __getattr__ = dict.__getitem__
    __setattr__ = dict.__setitem__

这个有意思之处是, 展示了函数即对象. 也提醒我们__getattr__合适会被调用.

posted @ 2021-01-06 20:12  Tokubara  阅读(2495)  评论(0编辑  收藏  举报