Rumah >pembangunan bahagian belakang >Tutorial Python >Bagaimanakah Kaedah `__iter__` dan `__next__` Python Mendayakan Penciptaan Iterator?
Mencipta Iterator dalam Python
Python iterator ialah objek yang mematuhi protokol iterator, menampilkan __iter__() dan __next__() kaedah.
iter Kaedah:
Kaedah __iter__() mengembalikan objek lelaran, secara automatik dipanggil pada permulaan gelung.
seterusnya Kaedah:
Kaedah __next__() mendapatkan semula nilai seterusnya dan secara tersirat dipanggil semasa kenaikan gelung. Ia menimbulkan pengecualian StopIteration apabila tiada lagi nilai tersedia, yang dikesan oleh binaan gelung dan digunakan untuk menghentikan lelaran.
Sebagai contoh, pertimbangkan kelas pembilang ringkas berikut:
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
Apabila menggunakan Kaunter:
for c in Counter(3, 9): print(c)
Output akan be:
3 4 5 6 7 8
Sebagai alternatif, penjana menawarkan pendekatan yang lebih mudah untuk penciptaan lelaran:
def counter(low, high): current = low while current < high: yield current current += 1
Menggunakan penjana:
for c in counter(3, 9): print(c)
Menghasilkan output yang sama. Secara dalaman, penjana menyerupai kelas Counter, menyokong protokol iterator.
Untuk gambaran keseluruhan menyeluruh tentang iterator, sila rujuk artikel David Mertz, "Iterators and Simple Generators."
Atas ialah kandungan terperinci Bagaimanakah Kaedah `__iter__` dan `__next__` Python Mendayakan Penciptaan Iterator?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!