一个自动属性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如何将Android Studio与本地服务器数据库SQL server 2008连接?   java在点击鼠标后绘制一个椭圆形   java选项窗格相对于其父项的位置   java如何在Android中的switch case中使用String[]输入?   安卓无法从“15.0.1”确定java版本   如果满足特定条件,java是否重置计时器?   java是一个实体类,可以在OOAD中返回其他实体实例吗?   bash将对jar文件| cut | awk和java程序的调用集成到一个统一进程中   Spring安全更新身份验证成功时的最后登录日期   数据库身份验证中基于Java控制台的客户端服务器登录应用程序错误   java Selenium junit测试失败,驱动程序过早获取URL   java LibGdx多点触摸事件混淆   带扫描仪的java打印空间   来自旧版应用程序的java springcloudsleuth头   java如何实现模板设计模式?   java如何比较具有多个值的键的两个映射?   读取时R中的java MemoryError。xlsx