python自定義字典的擴充套件類,讓字典操作起來更容易
阿新 • • 發佈:2018-12-26
python自定義的一個字典擴充套件類,可以讓字典操作起來更簡單,
比如:
原來需要這樣用:dic['website'] = 'sharejs.com'
有了這個類,你可以這樣用:dic.websites = 'sharejs.com'
比如:
原來需要這樣用:dic['website'] = 'sharejs.com'
有了這個類,你可以這樣用:dic.websites = 'sharejs.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) #該程式碼片段來自於: http://www.sharejs.com/codes/python/8434
>>> 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