【发布时间】:2021-08-28 02:18:43
【问题描述】:
在我工作的公司,我们使用类型注释来定义函数的预期返回类型。大多数开发人员都在使用 PyCharm,但我更喜欢坚持使用 VS Code。
VS Code IDE 中的以下行:
def example() -> [str]:
引发 Pylance 警告:
List expression not allowed in type annotation
Use List[T] to indicate a list type or Union[T1, T2] to indicate a union typePylance
并希望我使用:
def example() -> List[str]
虽然修复此问题需要我检查整个代码库,并且不会被拉取请求接受。
这种类型的类型注解在 Python 3.10 中是允许的(我不是 100% 确定),但在我们当前使用的 Python 3.7 中是不允许的。因为我可以忍受这个警告,所以我想压制它。
【问题讨论】:
-
为什么要忍受糟糕的编辑器设置?工具应该为你工作,而不是你为工具工作
-
我之前没见过这种风格的类型注解。我知道从 Python 3.9 开始,现在允许使用这种类型注释
list[str],即使用参数化泛型,但我之前没有见过[str]。团队中的每个人都使用相同的类型注释吗? -
@pavel 是的,团队中的每个人都在使用
[str],我不介意,因为它更短并且可以解决问题。我想这就是为什么它在未来的版本中被允许的原因。
标签: python visual-studio-code vscode-settings pylance