web-dev-qa-db-fra.com

Comment annoter des types dans une boucle for

Je veux annoter un type de variable dans une boucle for-. J'ai essayé ceci:

for i: int in range(5):
    pass

Mais cela n'a pas fonctionné, évidemment.

Ce que j'attends, c'est la saisie semi-automatique dans PyCharm 2016.3.2. Pré-annotation comme ceci:

i: int
for i in range(5):
    pass

n'aide pas.

P.S. Travaux de pré-annotation pour PyCharm> = 2017.1

46
grepcake

Selon PEP 526 , cela n'est pas autorisé:

De plus, on ne peut pas annoter les variables utilisées dans une instruction for ou with; ils peuvent être annotés à l'avance, de la même manière que le déballage du tuple

Annotez-le avant la boucle:

i: int
for i in range(5):
    pass

PyCharm 2018.1 et plus reconnaît maintenant le type de la variable à l'intérieur de la boucle. Cela n'était pas pris en charge dans les anciennes versions de PyCharm.

64
alecxe

Je ne sais pas si cette solution est compatible PEP ou juste une fonctionnalité de PyCharm mais je l'ai fait fonctionner comme ça

for i in range(5): #type: int
  pass

et j'utilise Pycharm Community Edition 2016.2.1

28
David Vasquez

Cela fonctionne bien pour mon dans PyCharm (en utilisant Python 3.6)

for i in range(5):
    i: int = i
    pass
7
Samir