python 3.5代码中的变量需要类型注释
我在我的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
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
(在#
之前使用双空格)。