Erstellen grundlegender Iteratoren in Python
Angenommen, Sie haben eine Klasse, die eine Sammlung von Werten kapselt, und Sie möchten einen Iterator erstellen, der dies ermöglicht um nacheinander auf diese Werte zuzugreifen.
Um einen Iterator zu erstellen, implementieren Sie das Iteratorprotokoll, für das zwei definiert werden müssen Methoden:
1. __iter__(): Initialisiert das Iteratorobjekt selbst und gibt es zurück.
2. __next__(): Gibt den nächsten Wert in der Sequenz zurück oder löst StopIteration aus, wenn keine weiteren Werte vorhanden sind.
Beispiel-Iterator:
Betrachten Sie die folgende Klasse mit eine Liste von Werte:
class Example: def __init__(self, values): self.values = values # __iter__ returns the iterable itself def __iter__(self): return self # __next__ returns the next value and raises StopIteration def __next__(self): if len(self.values) > 0: return self.values.pop(0) else: raise StopIteration()
Verwendung:
Mit diesem Iterator können Sie über die Werte in der Beispielklasse iterieren:
e = Example([1, 2, 3]) for value in e: print("The example object contains", value)
Dies druckt:
The example object contains 1 The example object contains 2 The example object contains 3
Iterator Anpassung:
Wie im obigen Beispiel zu sehen ist, kann die next-Methode des Iterators steuern, wie Werte abgerufen und zurückgegeben werden, was eine größere Flexibilität für benutzerdefinierte Iteratoren bietet.
Das obige ist der detaillierte Inhalt vonWie erstelle ich benutzerdefinierte Iteratoren in Python mit „__iter__' und „__next__'?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!