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

新手上路,请多包涵

我在我的 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 许可协议

阅读 594
2 个回答

您的代码混淆了 mypy 试图做的类型推断。例如,按照以下代码段重新定义名称,不允许 mypy 推断出 f 的类型:

 f = []
f = {}

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

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

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

原文由 Dimitris Fasarakis Hilliard 发布,翻译遵循 CC BY-SA 3.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题