我想在for循环中注释变量的类型。我试过了,但没用:
for i: int in range(5):
pass
我所期望的是在PyCharm 2016.3.2中工作自动完成,但使用 预注释不起作用:
i: int
for i in range(5):
pass
P.S.预注释适用于PyCharm >= 2017.1。
我想在for循环中注释变量的类型。我试过了,但没用:
for i: int in range(5):
pass
我所期望的是在PyCharm 2016.3.2中工作自动完成,但使用 预注释不起作用:
i: int
for i in range(5):
pass
P.S.预注释适用于PyCharm >= 2017.1。
根据PEP 526,这是不允许的:
此外,不能注释for或with中使用的变量 声明;可以提前对它们进行注释,类似于 元组拆包
在循环之前注释它:
i: int
for i in range(5):
pass
PyCharm 2018.1及以上版本现在可以识别循环内变量的类型。旧版本的PyCharm不支持这一点。
这里没有一个回答是有用的,除了说你不能。即使是被接受的答案也使用了来自PEP 526文档的语法,这不是有效的python语法。如果你试着输入
x: int
您将看到这是一个语法错误。
这里有一个有用的变通方法:
for __x in range(5):
x = __x # type: int
print(x)
使用x完成工作。PyCharm识别其类型,并自动完成工作。
我不知道这个解决方案是否与pep兼容,或者只是PyCharm的一个功能,但我让它像这样工作:
for i in range(5): #type: int
pass
我使用的是Pycharm社区版2016.2.1