Du liest:
Python return und yield: Rückgaben in Python handhaben

Python return und yield: Rückgaben in Python handhaben

von Patrick
15.04.2020
Jetzt Python programmieren lernen

Von den meisten Funktionen wird ein Rückgabewert erwartet, in Python kannst du dies mit den Schlüsselwörtern return und yield erreichen.
Welches der beiden das geeignete für welchen Anwendungsfall ist, erkläre ich dir im folgenden Beitrag.

1. Funktionen mit Python return

Das return Statement markiert das Ende einer Funktion und gibt das gewünschte Resultat zurück, so dass die einfachste Form einer Funktion nur einen Wert oder das Ergebnis einer einfachen Operation zurückliefert.
Im folgenden Beispiel wird das Quadrat einer Zahl mittels return zurückgegeben.

def quadrat(zahl):
    return zahl * zahl

print(quadrat(5))
> 25

Code, der nach einem return Statement in einer Funktion oder Methode steht, wird nicht erreicht und somit auch nicht ausgeführt.

def quadrat(zahl):
    print("Code vor dem return Statement ist erreichbar")
    return zahl * zahl
    print("Code nach dem return Statement ist unerreichbar")

print(quadrat(5))
> Code vor dem return Statement ist erreichbar
> 25 

2. Generatoren mit Python yield

Mit dem Schlüsselwort yield kannst du sogenannte Generatoren erstellen, die mehrere Ergebnisse einzeln zurückgeben.
Im folgenden Beispiel wird jede Potenz von der Grundzahl 2 bis zur Hochzahl 10 auf dem Bildschirm ausgegeben:

def potenzgenerator(zahl, potenz):
    for i in range(0, potenz+1):
        yield zahl ** i

for potenz in potenzgenerator(2, 10):
    print(potenz)
> 1
> 2
> 4
> 8
> 16
> 32
> 64
> 128
> 256
> 512
> 1024

Bei yield wird, im Gegensatz zu return, auch nach dem Schlüsselwort noch weiterer Code ausgeführt.

def potenzgenerator(zahl, potenz):
    print('Code wird vor yield ausgeführt')
    for i in range(0, potenz+1):
        yield zahl ** i
    print('Code wird nach yield ausgeführt')

for potenz in potenzgenerator(2, 2):
    print(potenz)
> Code wird vor yield ausgeführt
> 1
> 2
> 4
> Code wird nach yield ausgeführt

2.1 Generatoren in Listen umwandeln mit list

Mit der eingebauten Funktion list kannst du deine Generatoren einfach in Listen konvertieren, wie in diesem Beispiel.

potenzen = list(potenzgenerator(2, 10))
print(potenzen)
> [1, 2, 4, 8, 16, 32, 64, 128, 256, 512, 1024]

3. Fazit Python return und yield

Das zurückgeben von Werten mit dem Schlüsselwort return ist einfach, zudem ist es möglich, mehrere Werte mit dem Schlüsselwort yield nach und nach zurückzugeben, um unter anderem Operationen mit größeren Listen speicherschonender zu implementieren.

Hast du noch Fragen? Gefällt dir dieser Beitrag? Lass es uns in den Kommentaren wissen!



Bislang gibt es keine Kommentare. Markier dein Revier und sei der Erste!

Schreibe einen Kommentar

Das könnte dich auch interessieren