我正在使用一个现有的大型Python代码库,并希望开始添加类型注释,这样我就可以获得某种级别的静态检查。我在想象像,,或者之类的东西。我见过快速和脏的装饰器,它们根据函数参数和返回类型注释插入动态检查,但我正在寻找更健壮的东西,并在编译时执行检查。(注意:我不想讨论静态输入的利弊。)编辑:一个示例:
def put(d, k
new_tv in let ty = Subst.apply new_tv subst in这是来自OCaml中的过程函数的静态类型检查器错误上说,
错误:该表达式的类型为typ_eqn/3404 = (typ/3398 * typ/3398)列表,但预期表达式类型为typ_eqn/3179 = (typ/3173 * typ/3173) list type typ
我已经将django-模型-utils添加到现有的(大型)项目中,而构建现在正在失败,因为构建的一部分包括使用mypy进行静态类型检查。: "School" has no attribute "students"
即使我移除related_name,并使用self.student_set (即默认的django关系),它仍然会产生相同类型的错误只有删除InheritanceManager才能修复静态类型检查。当然,我使用它是有原因