我在我的 python 3.5 代码上使用 mypy
,我收到了很多这样的消息:
文件:行号:错误:变量需要类型注释
但是我在 --- 中读到了新特性,它只在 python 3.6
python 3.6
中引入了变量注释的语法:
PEP 484 引入了函数参数类型注释的标准,也就是类型提示。此 PEP 向 Python 添加语法,用于注释变量类型,包括类变量和实例变量……
如果我试图在 python 3.5
程序中为我的变量添加变量类型注释,它会抛出 SyntaxError
。
我应该怎么办?忽略此消息?更新到 python 3.6
?为什么 mypy
像在 python 3.6
中编写的那样编译我的代码?
原文由 Yuval Pruss 发布,翻译遵循 CC BY-SA 4.0 许可协议
您的代码混淆了
mypy
试图做的类型推断。例如,按照以下代码段重新定义名称,不允许 mypy 推断出f
的类型:由于它无法理解
f
的类型应该是什么,它会抱怨并告诉您它需要变量的注释。您可以通过以下方式显式提供类型提示:mypy
未在3.6
中编译,两个版本都存在此错误。区别在于你如何解决它。