


Bagaimana Python Iterator Berfungsi: Panduan kepada Kaedah `__iter__` dan `__next__`?
Cara Python Iterators Berfungsi: Panduan Komprehensif
Iterators ialah elemen penting dalam pengaturcaraan Python, membolehkan traversal jujukan atau penjanaan yang cekap dan ringkas nilai dengan pantas. Artikel ini meneroka cara mencipta iterator asas dalam Python, memfokuskan pada konsep asas dan pelaksanaan.
Memahami Protokol Iterator
Iterators Python mengikut protokol tertentu, ditakrifkan dengan kaedah __iter__() dan __next__(). Kaedah __iter__() mengembalikan objek iterator, yang berfungsi sebagai titik masuk untuk lelaran. Sebaliknya, kaedah __next__() mengembalikan nilai seterusnya dalam jujukan atau menimbulkan pengecualian StopIteration apabila tiada lagi nilai.
Mencipta Iterator Tersuai
Pertimbangkan kelas Contoh berikut yang secara logiknya "mengandungi" nilai:
class Example: def __init__(self, values): self.values = values
Kepada melaksanakan iterator untuk kelas ini, kami mentakrifkan kaedah __iter__() dan __next__():
class Example: def __init__(self, values): self.values = values def __iter__(self): return self def __next__(self): if self.values: return self.values.pop(0) else: raise StopIteration
Dalam contoh ini, iterator mengembalikan nilai daripada senarai nilai dengan memaparkannya satu demi satu. Apabila senarai kosong, ia menimbulkan pengecualian StopIteration.
Menggunakan Iterator
Sekarang, kita boleh menggunakan iterator seperti berikut:
e = Example([1, 2, 3]) for value in e: print("The example object contains", value)
Kod ini akan berulang ke atas nilai [1, 2, 3] dan mencetak setiap nilai ke konsol.
Pelajar Lebih Kompleks
Pelajar tidak terhad kepada mengakses atribut atau nilai tertentu bagi sesuatu tika. Mereka juga boleh mengawal dari mana nilai datang atau mengiranya dengan cepat. Sebagai contoh, kelas Counter berikut menjana julat nilai:
class Counter: def __init__(self, low, high): self.current = low - 1 self.high = high def __iter__(self): return self def __next__(self): self.current += 1 if self.current < self.high: return self.current raise StopIteration
Dengan memanggil kaedah __iter__() pada kelas ini, kami memperoleh iterator yang akan menjana nilai dalam julat yang ditentukan.
Kesimpulan
Pelajar Python menyediakan mekanisme yang kuat dan fleksibel untuk berulang ke atas jujukan atau menjana nilai. Memahami protokol iterator dan cara melaksanakan iterator tersuai memperkasakan pembangun untuk mencipta kod yang cekap dan serba boleh.
Atas ialah kandungan terperinci Bagaimana Python Iterator Berfungsi: Panduan kepada Kaedah `__iter__` dan `__next__`?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Alat AI Hot

Undresser.AI Undress
Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover
Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool
Gambar buka pakaian secara percuma

Clothoff.io
Penyingkiran pakaian AI

Video Face Swap
Tukar muka dalam mana-mana video dengan mudah menggunakan alat tukar muka AI percuma kami!

Artikel Panas

Alat panas

Notepad++7.3.1
Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina
Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1
Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6
Alat pembangunan web visual

SublimeText3 versi Mac
Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Topik panas

Penyelesaian kepada Isu Kebenaran Semasa Melihat Versi Python di Terminal Linux Apabila anda cuba melihat versi Python di Terminal Linux, masukkan Python ...

Cara mengelakkan dikesan semasa menggunakan fiddlerevery di mana untuk bacaan lelaki-dalam-pertengahan apabila anda menggunakan fiddlerevery di mana ...

Apabila menggunakan Perpustakaan Pandas Python, bagaimana untuk menyalin seluruh lajur antara dua data data dengan struktur yang berbeza adalah masalah biasa. Katakan kita mempunyai dua DAT ...

Bagaimanakah Uvicorn terus mendengar permintaan HTTP? Uvicorn adalah pelayan web ringan berdasarkan ASGI. Salah satu fungsi terasnya ialah mendengar permintaan HTTP dan teruskan ...

Fastapi ...

Menggunakan Python di Terminal Linux ...

Bagaimana Mengajar Asas Pengaturcaraan Pemula Komputer Dalam masa 10 jam? Sekiranya anda hanya mempunyai 10 jam untuk mengajar pemula komputer beberapa pengetahuan pengaturcaraan, apa yang akan anda pilih untuk mengajar ...

Memahami Strategi Anti-Crawling of Investing.com Ramai orang sering cuba merangkak data berita dari Investing.com (https://cn.investing.com/news/latest-news) ...
