Tr.Stult提供可以像字典一样使用的类,同时也可以使用属性访问的对象。
tri.struct的Python项目详细描述
三元结构
struct提供的类可以同时用作字典和具有属性访问的对象。有两种版本:
- 结构:可变结构
- FrozenStruct:不可变结构
一些细节包括:
- 可预测的repr(),因此编写测试很容易
- 合并函数调用以将不同类型的dict合并为新的:合并(struct(a=1),frozenstuct(b=1),c=1)==struct(a=1,b=1,c=1))
- 加速C语言的实现以提高速度。(仅使用python回退引用实现)
示例
>>>fromtri_structimportStruct>>>foo=Struct()>>>foo.a=1>>>foo['a']1>>>foo['a']=2>>>foo.a2
运行测试
你需要安装毒物,然后只需进行测试。
许可证
bsd
变更日志
3.1.0(2019-08-14)
- 覆盖冻结的副本。这是在tri.token的大量使用中发现的优化。
3.0.1(2019-06-12)
- pypi有问题,这与3.0.1相同
3.0.0(2019-06-04)
- 将模块从tri.struct重命名为tri-struct。这是一个突破性的变化。
- 放弃python2支持
2.5.7(2018-11-16)
- 修正了冻结的/冻结结构的性能问题:每次使用时都重新计算哈希值,而不是缓存哈希值。
2.5.6(2018-06-26)
- 固定释放功能
2.5.5(2018-02-20)
- 修复了在python 3下运行时repr中的segfault
2.5.4(2017-06-13)
- 在标准库的精神下添加了defaultstruct。 还添加了一个到默认结构中,用于递归转换dict。
2.5.3(2017-02-10)
- 修复重新打印包含 不止一次。
2.5.2(2016-04-07)
- 修复生成和释放的make和tox目标。
- 修复线头问题。
2.5.1(2015-12-15)
- 错误修复:修复结构模块的编译。
2.5.0(未发布)
- 生成更改。
2.4.0(2015-12-08)
- 改进:如果struct子类实现了\u missing\uuu方法, 它不会在属性访问的getattr之前调用,但将 在dict access上的getattr之前调用。
2.3.1(2015-12-07)
- 错误修复:在尝试getattr之前清除csstruct getattr中的keyerror, 否则,键错误可能“泄漏”。另外,只清除错误 如果原始错误是keyerror,则尝试getattr。
2.3.0(2015-12-02)
- 添加MIXIN类> CIT> Frozen 以生成DICT派生的只读版本 类(通常是其中的结构或子类)
- 使用
Frozen MIXIN实现FrozenStruct
2.2.0(2015-11-12)
- 向merged函数添加关键字参数。
2.1.2(2015-11-11)
- 将C实现重做为“heaptype”,并删除 设置自己。相反,对象将控制类型 存储,让我们在没有 污染dict。
2.0(未发布)
- 精简界面以再次匹配dict
- 添加tri.struct.merged函数以联接结构
- 添加可选的C实现以加速实例化
1.0(2015-09-29)
- 具有attribute&dict接口的结构
- _添加“与”或“与”以组合结构