MyPy:在python 3.5代码中需要变量的类型注释

Yuv*_*uss 8 python type-hinting python-3.x mypy

我正在使用mypy我的python 3.5代码,我收到了很多看起来像这样的消息:

file:行号:错误:需要变量的类型注释

但我读到了新功能,python 3.6因为它仅在python 3.6以下内容中引入了变量注释的语法:

PEP 484引入了函数参数类型注释的标准,即类型提示.这个PEP为Python添加语法,用于注释变量类型,包括类变量和实例变量......

如果我试图在python 3.5程序中的变量中添加变量类型注释,它会抛出SyntaxError.

我该怎么办?忽略这条消息?更新到python 3.6?为什么mypy编写我的代码就像它写的一样python 3.6

jOO*_*sko 15

使用注释来注释变量类型

x = 5 # type: int
my_list = [] # type: List[str]
Run Code Online (Sandbox Code Playgroud)

检查备忘单

https://mypy.readthedocs.io/en/latest/cheat_sheet_py3.html


Jim*_*ard 6

您的代码混淆了mypy尝试执行的类型推断。例如,按照下面的代码段重新定义名称,不允许mypy推导以下类型f

f = []
f = {}
Run Code Online (Sandbox Code Playgroud)

由于无法理解f应该是什么类型,它会抱怨并告诉您它需要为变量添加注释。您可以显式地提供类型提示:

  • Python 3.5的类型注释。
  • Python 3.6的变量注释

mypy未在中进行编译3.6,两个版本均存在此错误。区别在于您如何解决它。

  • @YuvalPruss 如果您打算使用变量注释,请看这里 /sf/ask/2798035061/#39973133 了解更多它。 (2认同)