Ich möchte einen Variablentyp in einer for
Schleife mit Anmerkungen versehen. Ich habe es versucht:
for i: int in range(5):
pass
Aber es hat offensichtlich nicht funktioniert.
Was ich erwarte, ist die automatische Vervollständigung in PyCharm 2016.3.2. Voranmerkung wie folgt:
i: int
for i in range(5):
pass
hilft nicht.
PS Die Voranmerkung funktioniert für PyCharm> = 2017.1
python
for-loop
pycharm
type-hinting
python-3.6
Grepcake
quelle
quelle
Antworten:
Nach PEP 526 ist dies nicht zulässig:
Kommentieren Sie es vor der Schleife:
i: int for i in range(5): pass
PyCharm 2018.1 und höher erkennt jetzt den Typ der Variablen in der Schleife. Dies wurde in älteren PyCharm-Versionen nicht unterstützt.
quelle
Local variable 'i' value is not used
.i
Ini: int
wird auch dann nicht verwendet, wenn Sie esi
in der Schleife verwenden. Ich denke, das ist ein Fehler für diese Art von Annotation.Ich weiß nicht, ob diese Lösung PEP-kompatibel ist oder nur eine Funktion von PyCharm, aber ich habe dafür gesorgt, dass es so funktioniert
for i in range(5): #type: int pass
und ich verwende Pycharm Community Edition 2016.2.1
quelle
for index, area in enumerate(area_list): # type: int, AreaInfo
Dies funktioniert gut für meine in PyCharm (mit Python 3.6)
for i in range(5): i: int = i pass
quelle
i: int
ist genug und Sie werden keine Beschwerden bekommen.Keine der Antworten hier war nützlich, außer zu sagen, dass Sie nicht können. Sogar die akzeptierte Antwort verwendet die Syntax aus dem PEP 526-Dokument, die keine gültige Python-Syntax ist. Wenn Sie versuchen einzugeben
x: int
Sie werden sehen, dass es sich um einen Syntaxfehler handelt.
Hier ist eine nützliche Problemumgehung:
for __x in range(5): x = __x # type: int print(x)
Mach deine Arbeit mit
x
. PyCharm erkennt seinen Typ und die automatische Vervollständigung funktioniert.quelle