Saya ingin membuat anotasi jenis variabel di for
-loop. Saya mencoba ini:
for i: int in range(5):
pass
Tapi itu tidak berhasil, jelas.
Yang saya harapkan adalah berfungsi pelengkapan otomatis di PyCharm 2016.3.2. Pranotasi seperti ini:
i: int
for i in range(5):
pass
tidak membantu.
Pranotasi PS berfungsi untuk PyCharm> = 2017.1
python
for-loop
pycharm
type-hinting
python-3.6
grepcake
sumber
sumber
Jawaban:
Menurut PEP 526 , ini tidak diperbolehkan:
Beri anotasi sebelum loop:
i: int for i in range(5): pass
PyCharm 2018.1 dan yang lebih baru sekarang mengenali jenis variabel di dalam loop. Ini tidak didukung di versi PyCharm yang lebih lama.
sumber
Local variable 'i' value is not used
.i
dalami: int
akan tetap tidak digunakan bahkan Anda gunakani
dalam lingkaran. Saya pikir ini adalah kekurangan untuk anotasi semacam ini.Saya tidak tahu apakah solusi ini kompatibel dengan PEP atau hanya fitur PyCharm tetapi saya membuatnya berfungsi seperti ini
for i in range(5): #type: int pass
dan saya menggunakan Pycharm Community Edition 2016.2.1
sumber
for index, area in enumerate(area_list): # type: int, AreaInfo
Ini bekerja dengan baik untuk saya di PyCharm (menggunakan Python 3.6)
for i in range(5): i: int = i pass
sumber
i: int
sudah cukup dan Anda tidak akan mendapat keluhan.Tidak ada tanggapan di sini yang berguna, kecuali untuk mengatakan bahwa Anda tidak bisa. Bahkan jawaban yang diterima menggunakan sintaks dari dokumen PEP 526, yang bukan sintaks python yang valid. Jika Anda mencoba mengetik
Anda akan melihat itu kesalahan sintaks.
Berikut adalah solusi yang berguna:
for __x in range(5): x = __x # type: int print(x)
Lakukan pekerjaan Anda dengan
x
. PyCharm mengenali tipenya, dan pelengkapan otomatis berfungsi.sumber