Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Lernen Das Iterator-Protokoll | Python Iterators
Funktionale Programmierkonzepte in Python

bookDas Iterator-Protokoll

Swipe um das Menü anzuzeigen

In Python ist das Iterator-Protokoll eine Sammlung von Methoden, die es Objekten ermöglicht, iteriert zu werden, sodass sie mit Konstrukten wie for-Schleifen kompatibel sind. Die beiden wesentlichen Methoden sind __iter__ und __next__. Wenn eine for-Schleife auf ein Objekt angewendet wird, ruft Python intern die __iter__-Methode des Objekts auf, um einen Iterator zu erhalten. Dieser Iterator muss eine __next__-Methode besitzen, die bei jedem Aufruf das nächste Element der Sequenz zurückgibt. Wenn keine weiteren Elemente vorhanden sind, muss __next__ eine StopIteration-Ausnahme auslösen, um das Ende der Sequenz anzuzeigen.

1234567891011121314151617181920212223242526
class SquaresIterator: # Initialize with the number of squares to generate def __init__(self, limit): self.limit = limit self.current = 0 # Return the iterator object (itself) def __iter__(self): return self # Return the next square, or stop if done def __next__(self): if self.current < self.limit: # Calculate square result = self.current ** 2 # Move to next number self.current += 1 return result # If no more items else: raise StopIteration for square in SquaresIterator(5): print(square)
copy

__init__ – Initialisierungsphase

Beim Erstellen des Iterators erhält er:

  • limit → wie viele Zahlen generiert werden sollen;

  • Es wird current = 0 gesetzt → der Startwert;

  • Es werden alle notwendigen Vorbereitungen für die Iteration getroffen.

__iter__ – Iterierbarkeit herstellen

  • Gibt self (das Objekt selbst) zurück;
  • Ermöglicht die Verwendung in einer for-Schleife.

__next__ – Werte erzeugen

Diese Methode wird jedes Mal ausgeführt, wenn die Schleife das nächste Element anfordert:

  • Wenn current < limit:
    • Berechnung von current²;
    • Erhöhung von current um 1;
    • Rückgabe des Ergebnisses.
  • Wenn currentlimit:
    • Auslösen von StopIteration, um die Schleife automatisch zu beenden.
question mark

Welche der folgenden Voraussetzungen muss ein Objekt erfüllen, um in Python als iterierbar zu gelten?

Wählen Sie die richtige Antwort aus

War alles klar?

Wie können wir es verbessern?

Danke für Ihr Feedback!

Abschnitt 5. Kapitel 3

Fragen Sie AI

expand

Fragen Sie AI

ChatGPT

Fragen Sie alles oder probieren Sie eine der vorgeschlagenen Fragen, um unser Gespräch zu beginnen

Abschnitt 5. Kapitel 3
some-alt