递归属性工具。

shackles的Python项目详细描述


https://secure.travis-ci.org/barberj/shackles.png?branch=develop

访问和检查绑定到对象的属性。 镣铐是麻省理工学院授权的。

安装

要安装configit,只需:

$ pip install shackles

API文档

卸扣断裂(obj,链条)

返回对象的第一个缺少命名属性的名称。

如果链没有断开(所有属性都在链中表示) 什么都不退还。

# obj.a.b.e
assert shackles.broken(obj, 'a.b.c') == 'c'
卸扣.get(obj,chain[,默认])

对象链中最终命名属性的返回值。

<如果命名属性不存在, 如果提供,则返回默认值,否则将引发attributeerror

# obj.a.b
assert shackles.get(obj, 'a.b.c', 5) == 5

# obj.a.b.c = 6
assert shackles.get(obj, 'a.b.c', 5) == 6
钩环。has(obj,链条)
< De>返回^ {EM1}$true如果对象上存在属性链,^ {EM1}$FALSE 如果不是。< /DD>
# obj.a.b.c
assert shackles.has(obj, 'a.b.c']) == True
卸扣。行走(obj,链条)

通过从对象遍历链中的命名属性来生成链中属性的值。

如果命名属性不存在, 如果提供,则返回默认值,否则将引发attributeerror

# a = obj; b = obj; c = obj
# a.name = 'a'; b.name = 'b'; c.name = 'c'
# a.b = b; b.c = c
assert next(shackles.walk(a, 'b.c')).name == 'b'

有关更多示例,请参阅包含的测试。

贡献

  1. 在github上分叉the repository,开始对development分支(或其分支)进行更改。

  2. 通过运行:

    $ python setup.py develop
    
  3. 编写一个测试,显示错误已修复或功能按预期工作。

  4. 发送一个pull请求并对维护程序进行bug操作,直到它被合并并发布。:)确保将自己添加到AUTHORS

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

推荐PyPI第三方库


热门话题
java调用Python函数作为TEID中的UDF   java Android。支持v4导入不工作   java如何影响具有静态属性的类   java如何在从glTexImage2D()分配后编辑纹理的像素颜色   javaspringboot+rediscache+@Cacheable适用于某些方法,而不适用于其他方法   java无法将动态Web模块方面从3.0更改为2.5   java如何在新选项卡中显示打印的文档?   java Google Cloud Endpoints API方法仅在删除用户参数时成功调用   java为什么我可以使用Stack<Double>但不能使用Stack<Double>?   java JDBC PreparedStatement似乎忽略了占位符   java如何设置JInternalFrame的标准图标化位置?   Java文件。copy()不复制文件   基于另一个类的java显示arraylist?   java Android Studio:错误:非法字符:'\u2028'   对象(Java)无法实例化类型映像?   javascript错误:飞行前响应的HTTP状态代码401无效   java确保泛型vararg参数具有相同的类型