数据类与yaml结婚。

yamliz的Python项目详细描述


亚姆利兹

python的3.7数据类与pyyaml结合在一起。

安装:

pip install yamliz

用法示例:

importdataclassesimportyamlizfromyamlizimportfields@dataclasses.dataclassclassSome(yamliz.Able):id:int=fields.Integer()mac:str=fields.MacAddress()ip:str=fields.IPv4()version:int=fields.Integer(default=411)

现在Some对象可以创建为纯python对象(感谢dataclass) 它配有__init____repr____eq__和其他一些方法。

>>>obj=Some(123,'aa:bb:cc:11:22:33','192.168.11.6')>>>objSome(id=123,mac='aa:bb:cc:11:22:33',ip='192.168.11.6',version=411)>>>print(obj)!iz/Someid:123ip:192.168.11.6mac:aa:bb:cc:11:22:33version:411

它的属性是常规的python属性:

>>>obj.id123>>>obj.mac'aa:bb:cc:11:22:33'>>>obj.ip'192.168.11.6'>>>obj.version=0# can be assigned>>>print(repr(obj))Ints(id=123,mac='aa:bb:cc:11:22:33',ip='192.168.11.6',version=0)

它还可以从yaml直接反序列化到自定义对象:

>>>yaml_string="""!iz/Someid: 22001ip: 12.13.14.15mac: aa:bb:cc:11:22:33version: 0""">>>importyaml>>>obj2=yaml.load(yaml_string,Loader=yaml.Loader)>>>repr(obj2)Some(id=22001,mac='aa:bb:cc:11:22:33',ip='12.13.14.15',version=0)

有待进一步记录…

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

推荐PyPI第三方库


热门话题
安卓在java中加入字符串组以创建复合字符串   java系统甚至不点击“下一步”或“上一步”按钮就将我返回到上一页,而不是进入下一页   java如何在arrayList中获取特定列的不同值   CXF GZIP REST JAVA   Java:使用大量半恒定标志检查优化循环中的循环?   java如何在两个应用程序之间进行会话管理?   java SVG文件使用蜡染(但没有轴线)转换为PNG   使用协议缓冲区和内部数据模型的java   java如何在logtag 安卓中打印和查看字符串的值   javascript如何在NodeJs中应用Java/Spring的分层架构?   java Spring URL在JSP中编码不正确   模式对话框后面的java工具提示   java WSRPC生成日历对象而不是日期   在对象外部无法识别类变量   java将图像从文件读/写到BuffereImage的最快方法?   JavaSpring数据存储库对具有不同Id的子类使用抽象超类   安全在Java 5.0上运行web应用程序服务器有危险吗?