Chcę dodać adnotację do typu zmiennej w for
-pętli. Próbowałem tego:
for i: int in range(5):
pass
Ale to oczywiście nie zadziałało.
Oczekuję, że działa autouzupełnianie w PyCharm 2016.3.2. Adnotacja wstępna, taka jak ta:
i: int
for i in range(5):
pass
nie pomaga.
PS Pre-adnotation działa dla PyCharm> = 2017.1
python
for-loop
pycharm
type-hinting
python-3.6
grepcake
źródło
źródło
Odpowiedzi:
Zgodnie z PEP 526 nie jest to dozwolone:
Opisz to przed pętlą:
i: int for i in range(5): pass
PyCharm 2018.1 i nowsze rozpoznają teraz typ zmiennej wewnątrz pętli. Nie było to obsługiwane w starszych wersjach PyCharm.
źródło
Local variable 'i' value is not used
.i
Wi: int
nie nadal być stosowane nawet użyći
w pętli. Myślę, że jest to wada tego rodzaju adnotacji.Nie wiem, czy to rozwiązanie jest kompatybilne z PEP, czy po prostu jest funkcją PyCharm, ale tak to zrobiłem
for i in range(5): #type: int pass
i używam Pycharm Community Edition 2016.2.1
źródło
for index, area in enumerate(area_list): # type: int, AreaInfo
Działa to dobrze w moim w PyCharm (przy użyciu Pythona 3.6)
for i in range(5): i: int = i pass
źródło
i: int
wystarczy i nie będziesz mieć żadnych reklamacji.Żadna z odpowiedzi nie była przydatna, z wyjątkiem stwierdzenia, że nie możesz. Nawet zaakceptowana odpowiedź używa składni z dokumentu PEP 526, która nie jest poprawną składnią Pythona. Jeśli spróbujesz wpisać
Zobaczysz, że to błąd składni.
Oto przydatne obejście:
for __x in range(5): x = __x # type: int print(x)
Wykonuj swoją pracę z
x
. PyCharm rozpoznaje jego typ i działa autouzupełnianie.źródło