Trim.NAMESTREST提供一个类,它可以像字典一样使用(或者通过属性访问),但是可以使用一组预定义的可能的键值。
tri.named-struct的Python项目详细描述
三.命名结构
named_struct提供的类可以像字典一样使用,但是有一组预定义的可能的键值。
示例
fromtri_named_structimportNamedStructclassMyNamedStruct(NamedStruct):foo=NamedStructField()bar=NamedStructField()m=MyNamedStruct(17,42)assertm['foo']==17assertm.foo==17assertm==dict(foo=17,bar=42)m.not_foo# Will raise an AttributeError
可以提供默认值:
fromtri_named_structimportNamedStructclassMyNamedStruct(NamedStruct):foo=NamedStructField()bar=NamedStructField()baz=NamedStructField(default='default')assertMyNamedStruct(17)==dict(foo=17,bar=None,baz='default')
默认值也可以由工厂方法提供:
fromtri_named_structimportNamedStructclassMyNamedStruct(NamedStruct):foo=NamedStructField(default_factory=list)assertMyNamedStruct().foo==[]
还有一种函数方法可以定义一个NamedStruct
子类:
fromtri_named_structimportnamed_structMyNamedStruct=named_struct('foo, bar')m=MyNamedStruct(17,42)assertm.foo==17assertm.bar==42
运行测试
您需要安装tox,然后只要make test
。
许可证
bsd
变更日志
1.0.0(2019-06-10)
- 已将包从tri.named撸struct重命名为tri撸struct
- 放弃python2支持
0.12.0(2016-08-30)
- 修复命名结构字段的类级重写。
0.11.0(2016-05-06)
- 修正子类init方法中显式设置的默认值阴影。
0.10.0(2016-01-12)
- 添加了default_factory参数以通过回调指定默认值。