mypy未校验继承泛型类时缺失模板参数的问题,该如何处理?
问题原因
mypy默认配置下,使用泛型类时如果未显式指定类型参数,会自动将所有泛型参数默认推导为Any,因此不会抛出错误。
解决方案
你需要开启disallow_any_generics检查规则,开启后只要使用泛型类时没有传入对应的类型参数,mypy就会抛出错误提示。
有两种开启方式:
- 运行时直接加命令行参数:
运行后你会收到对应报错:mypy --disallow-any-generics example.pyerror: Missing type parameters for generic type "SomeTemplatedClass" [type-arg] - 写入项目配置文件永久生效:
如果你用mypy.ini作为配置文件,添加以下内容:
如果你用[mypy] disallow_any_generics = Truepyproject.toml作为配置文件,添加以下内容:[tool.mypy] disallow_any_generics = true
如果需要更严格的全局类型校验,也可以直接开启strict模式,该模式默认包含disallow_any_generics以及其他数十项严格类型检查规则,开启方式为命令行加--strict参数,或者在配置文件中添加strict = True即可。
内容的提问来源于stack exchange,提问作者OrenIshShalom
相关产品推荐
相关产品推荐

