Pertanyaan yang sangat mendasar - bagaimana cara mendapatkan satu nilai dari generator dengan Python?
Sejauh ini saya menemukan saya bisa mendapatkannya dengan menulis gen.next()
. Saya hanya ingin memastikan ini jalan yang benar?
Ya, atau next(gen)
di 2.6+.
W1 = params.next()
tetapi mendapatkan kesalahanAttributeError: 'generator' object has no attribute 'next'
Dalam Python <= 2.5, gunakan
gen.next()
. Ini akan bekerja untuk semua versi Python 2.x, tetapi tidak untuk Python 3.xDalam Python> = 2.6, gunakan
next(gen)
. Ini adalah fungsi bawaan, dan lebih jelas. Ini juga akan bekerja dengan Python 3.Keduanya akhirnya memanggil fungsi bernama khusus
next()
, yang dapat diganti dengan subclassing. Dalam Python 3, bagaimanapun, fungsi ini telah diubah namanya menjadi__next__()
, agar konsisten dengan fungsi khusus lainnya.sumber
Gunakan (untuk python 3)
Berikut ini contohnya
harus mencetak
sumber
Ini adalah cara yang benar untuk melakukannya.
Anda juga bisa menggunakan
next(gen)
.http://docs.python.org/library/functions.html#next
sumber
Untuk mendapatkan nilai yang terkait dengan objek generator di python 3 dan di atasnya, gunakan
next(<your generator object>)
. panggilan berikutnya ke next () menghasilkan nilai objek yang berurutan dalam antrian.sumber
Di python 3 Anda tidak punya
gen.next()
, tapi Anda masih bisa menggunakannext(gen)
. Agak aneh jika Anda bertanya kepada saya tetapi begitulah adanya.sumber