Heim > Backend-Entwicklung > Python-Tutorial > Wie ermöglichen die Python-Methoden „__iter__' und „__next__' die Erstellung von Iteratoren?

Wie ermöglichen die Python-Methoden „__iter__' und „__next__' die Erstellung von Iteratoren?

Patricia Arquette
Freigeben: 2025-01-02 19:19:43
Original
850 Leute haben es durchsucht

How Do Python's `__iter__` and `__next__` Methods Enable Iterator Creation?

Erstellen von Iteratoren in Python

Python-Iteratoren sind Objekte, die dem Iteratorprotokoll entsprechen und über die Methoden __iter__() und __next__() verfügen.

iter Methode:

Die Methode __iter__() gibt das Iteratorobjekt zurück, das automatisch zu Beginn von Schleifen aufgerufen wird.

nextMethode:

Die Methode __next__() ruft den nachfolgenden Wert ab und wird implizit während der Schleife aufgerufen Inkremente. Es löst eine StopIteration-Ausnahme aus, wenn keine weiteren Werte verfügbar sind, die von Schleifenkonstrukten erkannt und zum Beenden der Iteration verwendet wird.

Betrachten Sie beispielsweise die folgende vereinfachte Zählerklasse:

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
Nach dem Login kopieren

When Verwendung des Zählers:

for c in Counter(3, 9):
    print(c)
Nach dem Login kopieren

Die Ausgabe ist:

3
4
5
6
7
8
Nach dem Login kopieren

Alternativ Generatoren bieten einen einfacheren Ansatz zur Iteratorerstellung:

def counter(low, high):
    current = low
    while current < high:
        yield current
        current += 1
Nach dem Login kopieren

Einsatz des Generators:

for c in counter(3, 9):
    print(c)
Nach dem Login kopieren

Erzeugt eine identische Ausgabe. Intern ähnelt der Generator der Counter-Klasse und unterstützt das Iterator-Protokoll.

Eine umfassende Übersicht über Iteratoren finden Sie im Artikel „Iteratoren und einfache Generatoren“ von David Mertz.

Das obige ist der detaillierte Inhalt vonWie ermöglichen die Python-Methoden „__iter__' und „__next__' die Erstellung von Iteratoren?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage