Mencipta Iterator dalam Python
Membina iterator dalam Python memerlukan pelaksanaan protokol iterator, yang menentukan dua kaedah penting: __iter__() dan __seterusnya__(). Kaedah ini mentakrifkan cara objek boleh memulakan dan berulang melalui jujukan nilai.
Memahami Protokol Iterator
Dalam __iter__(), objek iterator dikembalikan, iaitu biasanya dipanggil secara tersirat pada permulaan gelung. __next__() ialah kaedah utama yang mengembalikan nilai seterusnya dalam jujukan. Untuk pengguna Python 2, kaedah ini dikenali sebagai next(). Apabila semua nilai telah habis, __next__() menimbulkan pengecualian StopIteration, yang gelung membina tangkapan untuk menamatkan lelaran.
Contoh: The Counter Iterator
Mari kita buat ringkasan Peulang balas yang menjana nilai dalam yang ditentukan julat:
class Counter: def __init__(self, low, high): self.current = low - 1 self.high = high def __iter__(self): return self def __next__(self): # Python 2: def next(self) self.current += 1 if self.current < self.high: return self.current raise StopIteration # Usage: for c in Counter(3, 9): print(c)
Ini akan menghasilkan output berikut:
3 4 5 6 7 8
Menggunakan Penjana untuk Leter
Penjana menawarkan mekanisme alternatif untuk mencipta iterator. Fungsi penjana menghasilkan nilai satu demi satu, melaksanakan protokol iterator dengan berkesan.
def counter(low, high): current = low while current < high: yield current current += 1 # Usage: for c in counter(3, 9): print(c)
Kod di atas menghasilkan output yang sama seperti kelas Counter.
Sumber Tambahan
Untuk pemahaman menyeluruh tentang iterator, rujuk sumber seperti artikel David Mertz "Iterators and Simple Penjana."
Atas ialah kandungan terperinci Bagaimanakah Saya Mencipta dan Menggunakan Iterator dalam Python?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!