🔁 Iteratoren in Python – und wie man eigene erstellt#
🧠 Was ist ein Iterator?#
Ein Iterator ist ein Objekt, das nacheinander Werte liefern kann, z. B. in einer for-Schleife. Ein Iterator muss zwei Methoden haben:
__iter__()
liefert das Iteratorobjekt selbst__next__()
liefert das nächste Element oder löst StopIteration aus
🔨 Eigene Iteratoren schreiben#
class Zaehler:
def __init__(self, n):
self.n = n
self.aktuell = 1
def __iter__(self):
return self # Iteratorobjekt ist die Klasse selbst
def __next__(self):
if self.aktuell <= self.n:
wert = self.aktuell
self.aktuell += 1
return wert
else:
raise StopIteration
🔄 Was passiert in einer for-Schleife eigentlich?#
iterator = iter(objekt)
while True:
try:
wert = next(iterator)
...
except StopIteration:
break
📚 Zusammenfassung#
Konzept |
Bedeutung |
---|---|
|
liefert das Iterator-Objekt (oft self) |
|
liefert das nächste Element oder StopIteration |
|
erzeugt einen Iterator |
|
gibt das nächste Element aus dem Iterator |
🧪 Übungsaufgabe: Fibonacci-Iterator#
Schreiben Sie einen Iterator, der die ersten n Fibonacci-Zahlen liefert. Die Fibonacci-Folge ist definiert durch
\[F(0) = F(1) = 1\]
\[F(n+2) = F(n + 1) + F(n)\]