一个自动属性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'

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java理解泛型   java Guava:如何自定义减少多重映射?   java无法构建实体管理器工厂JPA/Hibernate   不区分大小写的LDAP搜索   在java中同时调用所有类对象中的方法   java做高级数字计算?2.1k等于2100等。。?   java Camel netty组件:未能创建选择器   exceljava。lang.ClassCastException:ExcelStreamAction无法强制转换为com。开放交响乐团。xwork2。行动   java避免对嵌套a4j:区域进行验证   java如何使一帧在1秒内显示50次,每次显示时消失   java一个HashMap的遍历,我得到NullPointerException   windows HP Stream 8平板电脑。。。Java swing JScrollPane滚动在触摸屏上不工作   java如何在运行时根据用户/程序员的需要自动增加数组的大小?