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
When Verwendung des Zählers:
for c in Counter(3, 9): print(c)
Die Ausgabe ist:
3 4 5 6 7 8
Alternativ Generatoren bieten einen einfacheren Ansatz zur Iteratorerstellung:
def counter(low, high): current = low while current < high: yield current current += 1
Einsatz des Generators:
for c in counter(3, 9): print(c)
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!