Quiero anotar un tipo de variable en un forbucle. Probé esto:
for i: int in range(5):
pass
Pero no funcionó, obviamente.
Lo que espero es autocompletar en PyCharm 2016.3.2. Pre-anotación como esta:
i: int
for i in range(5):
pass
no ayuda.
PS Pre-anotación funciona para PyCharm> = 2017.1
python
for-loop
pycharm
type-hinting
python-3.6
grepcake
fuente
fuente

Respuestas:
Según PEP 526 , esto no está permitido:
Anótelo antes del bucle:
i: int for i in range(5): passPyCharm 2018.1 y versiones posteriores ahora reconocen el tipo de variable dentro del bucle. Esto no fue compatible con versiones anteriores de PyCharm.
fuente
Local variable 'i' value is not used.iini: inttodavía no se usará incluso si lo usaien el bucle. Creo que esto es un defecto para este tipo de anotación.No sé si esta solución es compatible con PEP o solo una característica de PyCharm, pero hice que funcionara así
for i in range(5): #type: int passy estoy usando Pycharm Community Edition 2016.2.1
fuente
for index, area in enumerate(area_list): # type: int, AreaInfoEsto funciona bien para mi en PyCharm (usando Python 3.6)
for i in range(5): i: int = i passfuente
i: intes suficiente y no recibirá ninguna queja.Ninguna de las respuestas aquí fue útil, excepto para decir que no puede. Incluso la respuesta aceptada usa la sintaxis del documento PEP 526, que no es una sintaxis válida de Python. Si intentas escribir
Verá que es un error de sintaxis.
Aquí hay una solución alternativa útil:
for __x in range(5): x = __x # type: int print(x)Haga su trabajo con
x. PyCharm reconoce su tipo y el autocompletado funciona.fuente