python - español - ¿Cómo se anotan los tipos en un bucle for?
for en python 3 (4)
Esto funciona bien para mi en PyCharm (usando Python 3.6)
for i in range(5):
i: int = i
pass
Quiero anotar un tipo de una variable en un for
-loop. Intenté esto:
for i: int in range(5):
pass
Pero no funcionó, obviamente.
Lo que espero sea un trabajo de autocompletado en PyCharm 2016.3.2. Pre-anotación como esta:
i: int
for i in range(5):
pass
no ayuda
La anotación previa de PS funciona para PyCharm> = 2017.1
Ninguna de las respuestas aquí fue útil, excepto para decir que no puedes. Incluso la respuesta aceptada utiliza la sintaxis del documento PEP 526, que no es una sintaxis de python válida. Si intentas teclear
x: int
Verás que es un error de sintaxis.
Aquí hay una solución útil:
for __x in range(5):
x = __x # type: int
print(x)
Haz tu trabajo con x
. PyCharm reconoce su tipo, y el autocompletado funciona.
No sé si esta solución es compatible con PEP o solo una característica de PyCharm, pero la hice funcionar así
for i in range(5): #type: int
pass
y estoy usando Pycharm Community Edition 2016.2.1
Según PEP 526 , esto no está permitido:
Además, no se pueden anotar las variables utilizadas en una sentencia
for
owith
; se pueden anotar antes de tiempo, de manera similar a como se desempaqueta la tupla
Anótalo antes del bucle:
i: int
for i in range(5):
pass
PyCharm 2018.1 y versiones superiores ahora reconocen el tipo de variable dentro del bucle. Esto no era compatible con versiones anteriores de PyCharm.