我正在尝试设置mypy来警告我所有键入错误,但是当我忘记声明声明时添加显式键入时,我无法找出正确的配置来获取警告/错误变量。
例如:
a = min([3, 5, 2, 4])
应该警告我,我忘记在那一行中输入。
还有这个:
a: int = min([3, 5, 2, 4])
应该说'成功:没有发现问题'。
我希望每次都会发生这种情况,不仅是当mypy无法自行推断类型时。
是否有标记?
如果您没有在每个变量注释中都包含类型提示,则无法使mypy报告错误。这种事情被认为是反模式,因此mypy明确不支持。
我不太熟悉flake8等可配置的整理工具,但是AFAIK他们也不支持这种检查。因此,如果您想强制使用这种样式,恐怕剩下的唯一选择就是让您编写自己的linter。
我建议您改为专注于启用以下类别的mypy命令行标志/配置值:
Any
类型,而是要求所有内容都具有显式类型。以下标志也可能有用:
--warn-return-any
-进一步禁止使用Any--warn-return-any
-检测更多未经过类型检查的代码]--warn-unreachable
-在调试某些无法访问性问题时很有帮助两者均禁止动态类型输入,并使mypy更加积极地确保代码不受检查,这将有助于您确保所有内容均具有精确类型。
请注意,我在使用--warn-unreachable
时默认情况下没有启用我上面提到的大多数标志。