DataClasses with Verifiers/Converters

rx-dataclasses的Python项目详细描述


接收数据类

类型验证和转换

fromtypingimport*fromrx.operatorsimportmapasrxmapfromrxdataimportdataclass,field,operators@rxmapdeftry_convert(n):returnint(n)ifisinstance(n,str)andn.isalpha()elsen@dataclassclassData:# only int.number:int=field(default=1,invoke=operators.typeguard())# only int or string convertable to int. Always results in int.convert_or_die:Union[int]=field(default=1,invoke=[try_convert,operators.typeguard()])# If is string and convertable to int - perform conversion. `typing.Any` type defined explicitly during `invoke` (just for example).convert_or_accept:Union[int,str]=field(default=1,invoke=[try_convert,operators.typeguard(Any)])>data=Data(None)TypeError:typeofnumbermustbeint;gotNoneTypeinstead>data=Data(convert_or_die=None)TypeError:typeofconvert_or_diemustbeint;gotNoneTypeinstead>Data(convert_or_accept=None)Data(number=1,convert_or_die=1,convert_or_accept=None)data=Data()data.number='3'>TypeError:typeofnumbermustbeint;gotstrinsteaddata.number=2>Data(number=2,convert_or_die=1,convert_or_accept=1)data.convert_or_die=2>Data(number=2,convert_or_die=2,convert_or_accept=1)data.convert_or_accept='3'>Data(number=2,convert_or_die=2,convert_or_accept=3)data.convert_or_accept='3s'>Data(number=2,convert_or_die=2,convert_or_accept='3s')data.convert_or_accept=type>Data(number=2,convert_or_die=2,convert_or_accept=<class'type'>)

说明

反应性python3数据类-具有attrs类行为

  • init和/或setattr期间进行隐式和显式类型验证
  • init和/或setattr期间自定义预处理(转换)
  • 反应性属性

安装

^{pr2}$

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

推荐PyPI第三方库


热门话题
Maven中的java,为什么要运行“mvn clean”?   java会降低图像质量。OutOfMemory异常Android   在Java8中将函数传递到流的过滤方法   jboss6。x java。lang.NoClassDefFoundError,当我将<listenerclass>包含到web时。xml java   java读取图像像素时,像素Alpha始终为255   java在迭代后跳过一行   java如何创建我自己的单链表   意图上的java空指针异常。getStringExtra.:安卓   具有连接实体的java Hibernate onetoone映射   java需要帮助在自制的仓鼠模拟器上实现启动/恢复/暂停/停止线程操作   如何测试非主方法?[Java,IntelliJ]   java jdbc自动提交(false)不起作用   java在JADE中的同一容器中创建多个代理   java OkHttp获取失败的响应正文   java Webdriver flash按钮