减少python代码重复的工具

drytools的Python项目详细描述


Documentation status unknownBuild status unknown

干工具

版本号:0.1.3

作者:丹·埃利亚斯

这个库提供了一些工具来缩短python代码的长度、减少重复性和 更具可读性。

功能

  • 用于强制和/或验证参数的函数注释,以及
  • < >装饰器和编辑器,向Python类添加Python标准方法组

示例

这个例子为一个类提供了带有和不带drytools的实现 代表一个人的姓名和年龄。要求的行为是:

  • 构造器应该接受一个名称和一个年龄
    • 年龄应强制为整数
    • 如果名称不是str类型,则引发typeerror
    • 如果年龄为负数或超过200,则增加一个值error
  • 全套比较方法(即:u lt_uu,u eq_uu等)应为 实现按年龄反映排序(按字母顺序 同龄人士的姓名)

不带干燥剂
fromfunctoolsimporttotal_ordering@total_orderingclassperson:def__init__(self,name,age):ifnotisinstance(name,str):raiseTypeError(name)age=int(age)if(age<0)or(age>200):raiseValueError(age)self.name=nameself.age=agedef_comp(self):return(self.age,self.name)def__eq__(self,other):returnself._comp()==other._comp()def__gt__(self,other):returnself._comp()>other._comp()

使用干工具
fromoperatorimportge,lefromdrytoolsimportargs2attrs,check,compose_annotations,ordered_by@ordered_by('age','name')classperson:@compose_annotations@args2attrsdef__init__(self,name:check(isinstance,str,raises=TypeError),age:(int,check(ge,0),check(le,200))):pass

开始

$ pip install drytools

许可证

该项目是根据GPL-3许可证授权的。

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

推荐PyPI第三方库


热门话题
相当于加密流。NET在Java 安卓中的应用?   java Android:加载片段时启动动画   java文件从指定的绝对路径上载到服务器   java是否可以自定义Spring缓存抽象所使用的序列化?   当客户端输入为无效字符串时,java从JAXWS接收空的BigDecimal   将数据库从MySQL更改为SQLite后出现Java项目错误   java PrimeFaces在datatable中自定义行编辑器   java在数组中对字符串和双类类型进行排序   图像Java:如何在GridLayout中嵌套JPanel?   java searchByEmail方法不起作用   java运行时。exec(字符串)限制字符串   java通过异步运行lambda访问方法参数   java为什么这个条件语句不编译?   在javajar中添加和使用文件,就像它们在文件夹中一样   使用java查找带有正则表达式的子字符串   在awt所在的地方荡秋千。属性,以及如何在Java插件中提供它的本地化版本