Rumah >pembangunan bahagian belakang >Tutorial Python >Bagaimanakah Saya Mencipta dan Menggunakan Iterator dalam Python?

Bagaimanakah Saya Mencipta dan Menggunakan Iterator dalam Python?

Mary-Kate Olsen
Mary-Kate Olsenasal
2024-12-29 17:33:11230semak imbas

How Do I Create and Use Iterators in Python?

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!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn