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