Das Schlüsselwort “yield” wird in generator-Funktionen verwendet, um einen Wert zurückzugeben, ohne die Funktion zu beenden. Stattdessen wird die Ausführung der Funktion an der Stelle unterbrochen, an der “yield” aufgerufen wurde, und der Wert wird zurückgegeben. Wenn die Funktion erneut aufgerufen wird, beginnt sie an der Stelle, an der sie zuvor unterbrochen wurde, und führt die Ausführung fort.
Hier ist ein Beispiel für eine generator-Funktion, die das Schlüsselwort “yield” verwendet:
def count_up_to(max):
count = 1
while count <= max:
yield count
count += 1
for number in count_up_to(5):
print(number)
Diese Funktion wird einen Zähler von 1 bis 5 ausgeben, wobei jedes Mal, wenn sie aufgerufen wird, eine weitere Zahl zurückgegeben wird. Die Ausgabe wäre:
1
2
3
4
5
Generatoren sind nützlich, weil sie es ermöglichen, große Mengen von Daten zu verarbeiten, ohne den Speicherplatz für den gesamten Datensatz vorab reservieren zu müssen. Stattdessen werden nur die Werte generiert, die tatsächlich benötigt werden, wodurch Speicherplatz gespart wird.