如何解决VS-Code 中的 Python linter:当方法具有类型注释但没有返回语句时引发错误
我试图在我的 linter 中启用样式错误(如果这是最合适的名称),当函数具有类型提示但没有返回语句时应该会出现这种错误。例如:
def do_stuff() -> int:
a = 2
# this function expect at the very least something to be returned
# but no return statement is provided
我查看了 pylint、mypy 和 flake8 文档,但它们似乎不支持此类错误。
此外,是否存在能够产生类型错误的 linter,也就是说,该函数应该返回 int
但实际上返回的是 str
。例如:
def do_stuff() -> int:
a = 2
return 'abc'
# this function expect a int value to be returned
# but str value is returned instead
我正在使用 VSCode。我知道这在 PyCharm 中是可能的
解决方法
插件 Pylance 通过在引擎盖下使用 Pyright 支持这种开箱即用的静态类型检查。
我不确定 Pylint 是否已经支持 >Python 3.6 风格的静态类型。 documentation here 表明它使用/使用了一个额外的扩展模块,用于解析函数的文档字符串以获取返回参数。
,也许 linter 可以做到这一点!但是,对于这两种情况,尤其是对于您的后一种愿望(如果您返回错误的类型,请提出投诉),我认为您并不真正想要一个 linter,您想要一个实际的静态类型检查器。
最常见的实现称为 if(Task != value)
,但 Google 还提供了一个不太严格的类型检查器,称为 mypy
- 这可能更适合(尚未)高度规范的代码库类型注释。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。