一个自动属性dict(以及一些其他有用的dict函数)
aadict的Python项目详细描述
aadict是一个python dict子类,它允许属性样式 访问dict项,例如d.foo等同于d['foo']。 aadict还提供了一些其他有用的方法,例如pick 以及omit方法。另外,aadict是更多的调用链 友好的(例如updatereturnself等方法)和 可腌制。
tl;dr
安装:
$ pip install aadict
使用:
fromaadictimportaadict# attribute accessd=aadict(foo='bar',zig=87)assertd.foo==d['foo']=='bar'# helper methodsassertd.pick('foo')=={'foo':'bar'}assertd.omit('foo')=={'zig':87}# method chainingd2=aadict(x='y').update(d).omit('zig')assertd2.x=='y'andd2.foo=='bar'andd2.zigisNone# converting a dict to an aadict recursivelyd3=aadict.d2ar(dict(foo=dict(bar='zig')))assertd3.foo.bar=='zig'
详细信息
aadict模块提供以下功能:
aadict
a a dict对象与dict对象基本相同,具有 如果属性不是为其他目的保留的,则映射到 听写的东西。例如,如果dictd具有项'foo', 然后对d.foo的请求将返回该项查找。听写 还有几个helper方法,例如aadict.pick。到 获取与某个助手同名的项的值 方法您需要通过项查找引用它, 即d['pick']。助手方法是:
aadict.pick实例方法:
返回一个新的aadict,该aadict只包含指定的 钥匙。示例:
d=aadict(foo='bar',zig=87,zag=['a','b'])assertd.pick('foo','zag')=={'foo':'bar','zag':['a','b']}
aadict.ommit实例方法:
与aadict.pick方法相同,但返回补码, 也就是说,所有那些not指定的键。示例:
d=aadict(foo='bar',zig=87,zag=['a','b'])assertd.omit('foo','zag')=={'zig':87}
aadict.d2ar类方法:
递归地将提供的dict转换为aadict,包括 所有子列表和子dict类型。因为是递归的,但是 复制dict类型,这实际上是 一个很深的克隆人。示例:
d=aadict.d2ar(dict(foo=dict(bar='zig')))assertd.foo.bar=='zig'
如果没有递归遍历,.bar属性语法 会产生attributeRor异常,因为d.foo会 引用adict类型,而不是aaadict。
aadict.d2a类方法:
将提供的dict转换为aadict。示例:
d=aadict.d2a(dict(foo='bar'))assertd.foo==d['foo']=='bar'
注意,这与使用构造函数是相同的, 但是作为aadict.d2ar类的对称性提供 方法,例如:
d=aadict(dict(foo='bar'))assertd.foo==d['foo']=='bar'