Ein weiteres wichtiges Konzept in der Programmierung sind Generatoren. Generatoren sind spezielle Funktionen, die eine Folge von Werten erzeugen, anstatt alle Werte auf einmal zurückzugeben. Dies kann sehr nützlich sein, wenn man mit großen Datenmengen arbeitet und nicht alle Daten gleichzeitig im Speicher haben möchte. Generatoren können mit der yield-Anweisung in Python implementiert werden. Hier ein Beispiel:
def fibonacci(n):
a, b = 0, 1
for _ in range(n):
yield a
a, b = b, a + b
for i in fibonacci(10):
print(i)
Dieser Code definiert einen Generator fibonacci, der die ersten n Zahlen der Fibonacci-Folge erzeugt. Der Generator verwendet die yield-Anweisung, um jeden Wert einzeln zurückzugeben, anstatt alle Werte auf einmal zurückzugeben. Generatoren können auch mit anderen Konzepten wie Decoratoren kombiniert werden, um komplexe Funktionalitäten zu implementieren.