python数据类

pydataclasses的Python项目详细描述


python数据类支持python 2和3,具有许多人性化的特性。

这个项目已经在Python2.7和Python3.4+中进行了测试。 它与python 3.7中引入的dataclasses模块无关。

功能支持

python数据类通常支持

  • 非类型化数据、类型化数据和类型化数据列表
  • 字典输入中的任意属性名
  • 没有python属性命名冲突或污染
  • 动态创建惰性和自动对象
  • 延迟加载dict输入(默认:启用)
  • dict输入的同步更新(默认:禁用)

开始

  • 安装python数据类
pip install pydataclasses
  • 创建python数据类
frompydataclassesimportDataClassclassTT(DataClass):attr=NoneclassONCE(DataClass):data=NoneclassTWICE(ONCE):tear=TTtears=[TT]def__init__(self,*args,**kwargs):super(TWICE,self).__init__(*args,**kwargs)self.pair=TWICEself.pairs=[TWICE]
  • 使用python数据类
old_data='hello'new_data='world'old_dict={'data':old_data}new_dict={'data':new_data}# lazy and auto object creation on-the-flytwice=TWICE()asserttwice.pairs[1].tear.attrisNonetwice.pairs[1].tear.attr=old_dataassertold_data==twice.pairs[1].tear.attr# lazy loading of the dict input (default: enabled)twice=TWICE(old_dict)assertold_data==twice.dataassertold_dict==twice.__as_dict__(dict,0)# synchronous updates of the dict input (default: disabled)assertold_dict!=new_dicttwice=TWICE(old_dict,__sync__=True)twice.data=new_dataassertold_dict==new_dict

最佳实践

  • 阅读并参考pydataclasses.utils.JSONData作为示例
  • 将定制的子类放在pydataclasses和项目之间
  • 为这个子类编写(或从pydataclasses复制)尽可能多的测试
frompydataclassesimportDataClassclassProjectDataClass(DataClass):defas_dict(self,dict_class=OrderedDict):returnself.__as_dict__(dict_class,0)

发布历史记录

1.0.1(2019-05-04)

  • 再次碰撞版本

1.0.1(2019-05-04)

  • 碰撞版本

1.0.0(2019-05-04)

  • 支持本地数据类的注释

0.0.2(2018-08-28)

  • 修复python打包问题
  • 添加tox、pylint、pytest、coverage工具

0.0.1(2018-08-26)

  • 生日

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

推荐PyPI第三方库


热门话题
java如何向xsi:nil元素添加另一个属性?   Java抽象泛型方法,使用具体类型实现通配符   java使用pcap4j截断pcap文件   当我放置字母a、b和c时,java中的异常预期会下降   java设置活动对话框不可取消   接口类型变量上的Java克隆   使用Java或BouncyCastle对CSR(证书签名请求)进行安全解码/读取   java调用SavingsAccount对象上的函数并打印结果   java如何在Android应用程序上显示地图上的兴趣点(POI)并与之交互?   如果在JavaFX中的ResultSet中未找到任何内容,则显示java警报   java我将springboot和@component与@scheduled一起使用,它每12小时锁定一次   ApachePOI如何使用java删除包含字符串的word表的行   java如果对象(x,y)靠近其他对象(x,y)   从未对JMSException调用java JMS CachingConnectionFactory OneException方法   javascript使用java将HTML页面转换为MS word