减少python代码重复的工具
drytools的Python项目详细描述
干工具
版本号: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许可证授权的。