1 Pluspunkt 0 Minuspunkte
Was bedeutet "yield" in Python und wie verwendet man es?
von  

1 Antwort

0 Pluspunkte 0 Minuspunkte

Das Schlüsselwort "yield" wird verwendet, um Generator-Funktionen zu definieren die eine Abfolge von Werten in einem "lazy" oder bedarfsorientierten Modus erzeugen. Das bedeutet, dass die Werte nicht im Voraus berechnet und im Speicher gespeichert werden, sondern bei Bedarf generiert werden.

Eine Generator-Funktion ähnelt einer normalen Funktion, aber statt "return" verwendet sie das "yield" Statement, um Werte zu liefern.

def number_generator(n):
    for i in range(n):
        yield i

Wenn du die Generator-Funktion aufrufst, wird ein Generator-Objekt zurückgegeben. Beachte, dass zu diesem Zeitpunkt der Code in der Generator-Funktion nicht ausgeführt wird.

my_generator = number_generator(5)

Um Werte aus dem Generator zu erhalten, kannst du die "next()"-Funktion verwenden. Bei jedem Aufruf wird die Generator-Funktion bis zum nächsten "yield"-Statement ausgeführt und der entsprechende Wert zurückgegeben.

print(next(my_generator))  # Gibt 0 aus
print(next(my_generator))  # Gibt 1 aus
print(next(my_generator))  # Gibt 2 aus

Du kannst auch eine Schleife verwenden, um alle Werte aus dem Generator nacheinander zu durchlaufen, ohne explizit "next()" aufzurufen.

for num in number_generator(3):
    print(num)  # Gibt 0, 1, 2 aus
von