Python-Ausbeute vs. Rendite

Python Yield Vs Return



Python ist die weit verbreitete Allzweck-Programmiersprache der letzten Zeit. Der Ertrag ist ein integriertes Python-Schlüsselwort, das verwendet wird, um die Generatorfunktionen zu erstellen. Seine Funktion erzeugt eine Reihe von Ergebnissen. Es pausiert die Ausführung des Programms, sendet den Ergebniswert an den Aufrufer zurück und setzt die Ausführung mit dem letzten Ergebnis fort. Außerdem sendet die Yield-Funktion die generierte Ergebnisreihe in Form eines Generator-Objekts. Andererseits ist return auch ein in Python eingebautes Schlüsselwort, das die Funktion beendet und den Wert an den Aufrufer zurücksendet.

In diesem Artikel werden die Unterschiede zwischen Rendite und Rendite anhand von Beispielen skizziert.







Unterschiede zwischen Ertrag und Rendite

Zunächst einmal gibt es viele markante Unterschiede zwischen Rendite und Rendite. Lassen Sie uns zuerst besprechen, was das ist.



Zurückkehren Ertrag
Die return-Anweisung gibt nur einen einzelnen Wert an den Aufrufer zurück. Die yield-Anweisung kann dem Aufrufer eine Reihe von Ergebnissen in Form eines Generatorobjekts zurückgeben.
Die Rückgabe beendet die Funktion und verwirft im Falle einer Schleife die Schleife. Es ist die letzte Anweisung, die innerhalb der Funktion platziert wird. Es beseitigt nicht die lokalen Variablen der Funktion. Es unterbricht die Ausführung und sendet den Wert an den Aufrufer zurück und setzt die Ausführung des Programms ab der letzten Yield-Anweisung fort.
Logischerweise sollte eine Funktion nur eine return-Anweisung haben. Die Funktion kann mehr als eine Yield-Anweisung enthalten.
Die return-Anweisung kann nur einmal ausgeführt werden. Die Yield-Anweisung kann mehrmals ausgeführt werden.
Die return-Anweisung wird innerhalb einer regulären Python-Funktion platziert. Die yield-Anweisung wandelt eine reguläre Funktion in eine Generatorfunktion um.

Beispiel 1: Rendite vs. Rendite

Sehen wir uns nun anhand von Beispielen den Unterschied zwischen return- und yield-Anweisungen an. Im unten angegebenen Beispielprogramm haben wir mehrere return-Anweisungen verwendet. Sie können beobachten, dass die Ausführung des Programms nach der ersten return-Anweisung beendet wird und der Rest des Codes nicht ausgeführt wird.



#ein Programm, um die Funktionsweise der return-Anweisung zu zeigen

#Definieren einer Zahlenvariablen

num1=10

#Definieren einer Zahlenvariablen

num2=zwanzig

#Erstellen einer Funktion zum Ausführen arithmetischer Operationen

def mathOP():

#Berechnung des Summenwertes

Rückkehrnum1+num2

#Berechnung der Differenz

Rückkehrnum1-num2

#Berechnung des Multiplikationswerts

Rückkehrnum1*num2

#Berechnung des Divisionswerts

Rückkehrnum1/num2

#die Funktion aufrufen

drucken(mathOP())

Ausgabe





In der Ausgabe ist zu erkennen, dass die Funktion nur den ersten Wert zurückliefert und das Programm beendet wird.



Um eine ähnliche Aufgabe mit mehreren return-Anweisungen auszuführen, müssen wir für jeden arithmetischen Operationstyp vier verschiedene Funktionen erstellen.

#ein Programm, um die Funktionsweise der return-Anweisung zu zeigen

#Definieren einer Zahlenvariablen

num1=10

#Definieren einer Zahlenvariablen

num2=zwanzig

#Erstellen einer Funktion zum Ausführen arithmetischer Operationen

def sumOP():

#Berechnung des Summenwertes

Rückkehrnum1+num2

def subtrahierenOP():

#Berechnung der Differenz

Rückkehrnum1-num2

def MultiplikationOP():

#Berechnung des Multiplikationswerts

Rückkehrnum1*num2

def DivisionOP():

#Berechnung des Divisionswerts

Rückkehrnum1/num2

#Aufruf der Summenfunktion

drucken('Der Summenwert ist: ',sumOP())

#Aufruf der Subtraktionsfunktion

drucken('Der Differenzwert ist: ',subtrahierenOP())

#die Multiplikationsfunktion aufrufen

drucken('Der Multiplikationswert ist: ',MultiplikationOP())

#Aufruf der Divisionsfunktion

drucken('Der Divisionswert ist: ',AbteilungOP())

Ausgabe

Wir können diese mehreren arithmetischen Operationen innerhalb einer einzigen Generatorfunktion mit mehreren Yield-Anweisungen ausführen.

#ein Programm, um die Funktionsweise von Yield-Anweisungen zu zeigen

#Definieren einer Zahlenvariablen

num1=10

#Definieren einer Zahlenvariablen

num2=zwanzig

#Erstellen einer Funktion zum Ausführen arithmetischer Operationen

def mathOP():

#Berechnung des Summenwertes

Ertragnum1+num2

#Berechnung der Differenz

Ertragnum1-num2

#Berechnung des Multiplikationswerts

Ertragnum1*num2

#Berechnung des Divisionswerts

Ertragnum1/num2

#die Funktion aufrufen

drucken('Werte drucken:')

#mit for-Schleife auf die Werte des Generator-Objekts zugreifen

zumich in matheOP():

drucken(ich)

Ausgabe

Beispiel 2: Rendite vs. Rendite

Sehen wir uns ein weiteres Beispiel für return- und yield-Anweisungen an. Im gegebenen Beispiel haben wir eine Liste von Zahlen, die als Argument an die Funktion mod() übergeben wird. Wir führen die Modulus-Operation für jede Anzahl von Listen durch und prüfen, welche Zahlen bei Division durch 10 Null als Restwert zurückgeben.

Lassen Sie uns dieses Beispiel zunächst in unserem Python-Skript mit return-Anweisung implementieren.

#Definieren einer Liste von Zahlen

meine Liste=[10,zwanzig,25,30,35,40,fünfzig]

#definieren einer Funktion zur Durchführung der Modulus-Operation

def mod(meine Liste):

zumich in meiner Liste:

#Moduloperation durchführen

wenn(ich%10==0):

Rückkehrich

drucken(gegen(meine Liste))

Ausgabe

Die return-Anweisung gibt nur die erste Zahl an den Aufrufer zurück und beendet die Ausführung der Funktion.

Lassen Sie uns nun dasselbe Beispiel in unserem Python-Skript mit der yield-Anweisung implementieren.

#Definieren einer Liste von Zahlen

meine Liste=[10,zwanzig,25,30,35,40,fünfzig]

#definieren einer Funktion zur Durchführung der Modulus-Operation

def mod(meine Liste):

zumich in meiner Liste:

#Moduloperation durchführen

wenn(ich%10==0):

#die Ertragsaussage

Ertragich

zumich in mod(meine Liste):

drucken(ich)

Ausgabe

Abschluss

Zusammenfassend sind Return und Yield zwei integrierte Python-Schlüsselwörter oder -Anweisungen. Die return-Anweisung wird verwendet, um den Wert einer Funktion an den Aufrufer zurückzugeben und die Ausführung des Programms zu beenden, während die yield-Anweisung ein Generatorobjekt erzeugt und die mehreren Werte an den Aufrufer zurückgeben kann, ohne die Ausführung des Programms zu beenden. Dieser Artikel listet alle wichtigen Unterschiede zwischen Return- und Yield-Anweisungen mit Beispielen auf.