Eu quero anotar um tipo de variável em um for
loop. Eu tentei isso:
for i: int in range(5):
pass
Mas não funcionou, obviamente.
O que eu espero é o autocomplete funcionando no PyCharm 2016.3.2. Pré-anotação como esta:
i: int
for i in range(5):
pass
não ajuda.
A pré-anotação PS funciona para PyCharm> = 2017.1
python
for-loop
pycharm
type-hinting
python-3.6
grepcake
fonte
fonte
Respostas:
De acordo com PEP 526 , isso não é permitido:
Anote antes do loop:
i: int for i in range(5): pass
O PyCharm 2018.1 e superior agora reconhece o tipo da variável dentro do loop. Isso não era compatível com as versões mais antigas do PyCharm.
fonte
Local variable 'i' value is not used
.i
noi: int
ainda não serão usados mesmo que você usai
no circuito. Acho que isso é uma falha para esse tipo de anotação.Não sei se esta solução é compatível com PEP ou apenas um recurso do PyCharm mas fiz funcionar assim
for i in range(5): #type: int pass
e estou usando o Pycharm Community Edition 2016.2.1
fonte
for index, area in enumerate(area_list): # type: int, AreaInfo
Isso funciona bem para mim no PyCharm (usando Python 3.6)
for i in range(5): i: int = i pass
fonte
i: int
é o suficiente e você não receberá nenhuma reclamação.Nenhuma das respostas aqui foi útil, exceto para dizer que você não pode. Mesmo a resposta aceita usa a sintaxe do documento PEP 526, que não é uma sintaxe Python válida. Se você tentar digitar
x: int
Você verá que é um erro de sintaxe.
Esta é uma solução alternativa útil:
for __x in range(5): x = __x # type: int print(x)
Faça seu trabalho com
x
. O PyCharm reconhece seu tipo e o preenchimento automático funciona.fonte