Я хочу аннотировать тип переменной в for
цикле. Я пробовал это:
for i: int in range(5):
pass
Но это явно не сработало.
Я ожидаю, что в PyCharm 2016.3.2 работает автозаполнение. Предварительная аннотация вроде этого:
i: int
for i in range(5):
pass
не помогает.
PS Предварительная аннотация работает для PyCharm> = 2017.1
python
for-loop
pycharm
type-hinting
python-3.6
grepcake
источник
источник
Ответы:
Согласно PEP 526 , это запрещено:
Аннотируйте его перед циклом:
i: int for i in range(5): pass
PyCharm 2018.1 и выше теперь распознает тип переменной внутри цикла. Это не поддерживалось в более старых версиях PyCharm.
источник
Local variable 'i' value is not used
.i
по-i: int
прежнему не будет использоваться, даже если вы используете егоi
в цикле. Я думаю, что это недостаток такой аннотации.Я не знаю, совместимо ли это решение с PEP или это просто функция PyCharm, но я заставил его работать так
for i in range(5): #type: int pass
и я использую Pycharm Community Edition 2016.2.1
источник
for index, area in enumerate(area_list): # type: int, AreaInfo
Это хорошо работает для меня в PyCharm (с использованием Python 3.6)
for i in range(5): i: int = i pass
источник
i: int
достаточно, и вы не получите никаких жалоб.Ни один из ответов здесь не был полезным, за исключением того, что вы не могли. Даже в принятом ответе используется синтаксис из документа PEP 526, который не является допустимым синтаксисом Python. Если вы попытаетесь ввести
Вы увидите, что это синтаксическая ошибка.
Вот полезный обходной путь:
for __x in range(5): x = __x # type: int print(x)
Делайте свою работу с помощью
x
. PyCharm распознает его тип, и автозаполнение работает.источник