Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/299.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
python 3.5代码中的变量需要类型注释_Python_Python 3.x_Type Hinting_Mypy - Fatal编程技术网

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

python 3.5代码中的变量需要类型注释,python,python-3.x,type-hinting,mypy,Python,Python 3.x,Type Hinting,Mypy,我在我的python 3.5代码中使用了mypy,我得到了很多如下的消息: 文件:行号:错误:需要变量的类型注释 但是我在python3.6中看到了一些新特性,它只在python3.6中引入了变量注释的语法: PEP 484介绍了功能参数的类型注释标准,也称为类型提示。此PEP为Python添加了语法,用于注释变量类型,包括类变量和实例变量 如果我试图在python3.5程序中向变量添加变量类型注释,它会抛出SyntaxError 我该怎么办?忽略此消息?是否更新到python 3.6?为什么m

我在我的python 3.5代码中使用了
mypy
,我得到了很多如下的消息:

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

但是我在
python3.6
中看到了一些新特性,它只在
python3.6
中引入了变量注释的语法:

PEP 484介绍了功能参数的类型注释标准,也称为类型提示。此PEP为Python添加了语法,用于注释变量类型,包括类变量和实例变量

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


我该怎么办?忽略此消息?是否更新到python 3.6?为什么
mypy
像在
python3.6
中编写的那样编译我的代码?

使用注释注释变量类型

x = 5 # type: int
my_list = [] # type: List[str]
检查备忘单


您的代码混淆了
mypy
试图进行的类型推断。例如,在下面的代码段中重新定义名称,不允许mypy推断
f
的类型:

f = []
f = {}
由于它无法理解
f
的类型,它会抱怨并告诉您它需要为变量添加注释。您可以显式提供类型提示,包括:

  • Python 3.5的类型注释
  • Python3.6的变量注释

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

如果有空值,则必须定义变量的类型。例如:

my_val: str = ""
my_val1: dict = {}
my_val2: list = []

在您的情况下,我会考虑将Python版本更改为3.6,并且需要更新代码。

@ YuvalPruss。如果您计划使用变量注释,请在这里查看一下。我正在寻找的正是这个。注意,在Python 3.6上,
flake8
表示内联注释之前需要两个空格,因此(例如)我必须将
x=5#type:int
(在
#
之前使用单空格)更改为
x=5#type:int
(在
#
之前使用双空格)。