python自定义字典的扩展类,让字典支持点操作符

2022-04-29 00:00:00 自定义 扩展 字典

python自定义的一个字典扩展类,可以让字典操作起来更简单,
比如:
原来需要这样用:dic['website'] = 'pidancode.com'
有了这个类,你可以这样用:dic.websites = 'pidancode.com'
是不是更简单。
类定义如下

class easyaccessdict(dict):
    def __getattr__(self,name):
        if name in self:
            return self[name]
        n=easyaccessdict()
        super().__setitem__(name, n)
        return n
    def __getitem__(self,name):
        if name not in self:
            super().__setitem__(name,nicedict())
        return super().__getitem__(name)
    def __setattr__(self,name,value):
        super().__setitem__(name,value)

使用范例

>>> d= easyaccessdict()
>>> d
{}
>>> d.foo.bar= 'a'
>>> d
{'foo':{'bar':'a'}}
>>> d['foo']
{'bar':'a'}
>>> d['foo'].blah= 7
>>> d
{'foo':{'bar':'a', 'blah':7}}
>>> d.a.b.c.e.e.f.g.h= 11

相关文章