问题:如何在for循环中注释类型
我想在for
-loop中注释变量的类型。我尝试了这个:
for i: int in range(5):
pass
但这显然没有用。
我期望在PyCharm 2016.3.2中能够自动完成工作。像这样的预注释:
i: int
for i in range(5):
pass
没有帮助。
适用于PyCharm> = 2017.1的PS预注释作品
回答 0
根据PEP 526,这是不允许的:
另外,不能注释
for
或with
语句中使用的变量。可以像元组拆包一样提前注释它们
在循环之前对其进行注释:
i: int
for i in range(5):
pass
PyCharm 2018.1及更高版本现在可以识别循环内变量的类型。较早的PyCharm版本不支持此功能。
回答 1
我不知道此解决方案是否与PEP兼容,或者仅仅是PyCharm的功能,但我使它像这样工作
for i in range(5): #type: int
pass
我正在使用Pycharm Community Edition 2016.2.1
回答 2
这对我在PyCharm(使用Python 3.6)中的效果很好
for i in range(5):
i: int = i
pass
回答 3
这里的回答都没有用,只是说不能。甚至接受的答案也使用PEP 526文档中的语法,这不是有效的python语法。如果您尝试输入
x: int
您会看到这是一个语法错误。
这是一个有用的解决方法:
for __x in range(5):
x = __x # type: int
print(x)
做您的工作x
。PyCharm可以识别其类型,并且可以自动完成。