Runtimetypechecker在运行时通过类型注释执行类型检查
runtime-type-checker的Python项目详细描述
运行时类型检查器
此包在运行时通过类型注释执行类型检查。在
如何使用此软件包
有两种方法可以使用此包执行类型检查。在
我在这里提供几个简单的例子。要获得完整的概述,请查看包的单元测试。在
1-check_type
函数
您可以通过check_type
函数对照类型或注释检查对象。在
如果检查成功,函数返回None
,或者在出现错误时引发一个TypeError
。在
注意,这个函数不会递归地检查类的属性。在
fromtypingimportList,Sequence,Optional,Mappingfromdataclassesimportdataclassfromruntime_type_checkerimportcheck_typecheck_type("a",str)# OKcheck_type(["a"],List[str])# OKcheck_type(["a",1],Sequence[str])# raises TypeError@dataclassclassFoo:a:intb:Optional[Mapping[str,int]]=Nonecheck_type(Foo(1),Foo)# OKcheck_type(Foo(1),int)# raises TypeError
2-check_types decorator
您还可以在创建实例时键入check类,在调用时通过check_types
键入函数或方法
装饰工:
包装特点和不足
1-特点
- simplicity:只需要记住一个函数和一个decorator。在
- robustability:这个包依赖于
typing-inspect
来完成繁重的工作。此程序包由 typing模块的核心贡献者,这意味着在我这方面很少有黑客在python的旧版本上工作。在
2-短路
- coverage:我不提供类型注释的所有特性的覆盖范围:例如,Protocol、Generators、IO不是 当前支持。泛型处理得不好。在
- 项目
标签: