我在python3.5代码上使用了mypy,我收到了很多消息,如下所示:
文件:行号:错误:变量需要类型注释
但是我读到了python 3.6中的一些新特性,它只在python 3.6中引入了变量注释的语法。
PEP 484介绍了函数参数类型注释的标准,即k.a。输入提示。这个PEP为Python添加了语法,用于注释变量的类型,包括类变量和实例变量.
如果我试图在python 3.5程序中向变量添加变量类型注释,它会抛出SyntaxError。
我该怎么办?忽略这条信息?更新到python 3.6?为什么mypy像用python 3.6编写的那样编译我的代码
发布于 2017-06-18 14:01:32
您的代码混淆了mypy试图进行的类型推断。例如,重新定义名称,如下面的代码段所示,不允许mypy推断f的类型
f = []
f = {}由于它无法理解应该是什么类型的f,它会抱怨并告诉您,它需要对变量进行注释。您可以显式地提供类型提示:
mypy没有在3.6中编译,这两个版本都存在此错误。不同之处在于你如何处理它。
发布于 2017-06-18 13:52:49
发布于 2019-09-16 13:02:31
如果您有空值,则必须定义变量的类型。例如:
my_val: str = ""
my_val1: dict = {}
my_val2: list = []在您的例子中,我将考虑将python的版本更改为3.6,并需要更新代码。
https://stackoverflow.com/questions/44615612
复制相似问题