我想在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
答案 0 :(得分:50)
根据PEP 526,不允许这样做:
此外,一个无法注释
for
或with
中使用的变量 声明强>;它们可以提前注释,类似于 元组拆包
在循环之前注释它:
i: int
for i in range(5):
pass
PyCharm 2018.1及以上现在可识别循环内变量的类型。旧的PyCharm版本不支持此功能。
答案 1 :(得分:22)
我不知道这个解决方案是PEP兼容还是只是PyCharm的一个功能,但我让它像这样工作
for i in range(5): #type: int
pass
我正在使用Pycharm Community Edition 2016.2.1
答案 2 :(得分:5)
这适用于我的PyCharm(使用Python 3.6)
for i in range(5):
i: int = i
pass
答案 3 :(得分:-3)
这里没有任何回复是有用的,只是说你做不到。甚至接受的答案都使用PEP 526文档中的语法,这是无效的python语法。如果您尝试输入
x: int
你会发现这是一个语法错误。
这是一个有用的解决方法:
for __x in range(5):
x = __x # type: int
print(x)
使用x
开展工作。 PyCharm识别它的类型,并且自动完成工作。