Python Yield vs. Return

Python Yield Vs Return



Python er det mest almindelige programmeringssprog i nyere tid. Udbyttet er et indbygget Python-søgeord, der bruges til at oprette generatorfunktionerne. Dens funktion genererer en række resultater. Det afbryder udførelsen af ​​programmet, sender resultatværdien tilbage til den, der ringer op, og genoptager udførelsen fra det sidste udbytte. Udover det sender afkastfunktionen den genererede række af resultater i form af et generatorobjekt. På den anden side er afkastet også et indbygget søgeord i Python, der afslutter funktionen og sender værdien tilbage til den, der ringer.

Denne artikel skitserer forskellene mellem udbytte og afkast med eksempler.







Forskelle mellem udbytte og afkast

Til at begynde med er der mange fremtrædende forskelle mellem udbytte og afkast. Lad os først diskutere, hvad disse er.



Vend tilbage Udbytte
Returopgørelsen returnerer kun en enkelt værdi til den, der ringer. Udbytteopgørelsen kan returnere en række resultater til den, der ringer op i form af et generatorobjekt.
Returen forlader funktionen, og i tilfælde af en sløjfe afviser den sløjfen. Det er den sidste sætning, der skal placeres inde i funktionen. Det afskaffer ikke funktionens lokale variabler. Det suspenderer udførelsen og sender værdien tilbage til den, der ringer, og fortsætter udførelsen af ​​programmet fra den sidste udbytteopgørelse.
Logisk set bør en funktion kun have en returnering. Der kan være mere end en udbytteopgørelse inde i funktionen.
Returopgørelsen kan kun køre én gang. Udbytteopgørelsen kan køre flere gange.
Returopgørelsen er placeret i en almindelig Python -funktion. Udbytteopgørelsen konverterer en almindelig funktion til en generatorfunktion.

Eksempel 1: Return vs. Yield

Lad os nu se forskellen mellem afkast- og afkastopgørelser gennem eksempler. I eksempelprogrammet nedenfor har vi brugt flere returopgørelser. Du kan observere, at udførelsen af ​​programmet afsluttes efter den første returneringserklæring, og resten af ​​koden vil ikke blive eksekveret.



#et program til at vise funktionen i returopgørelsen

#definerer en talvariabel

num1=10

#definerer en talvariabel

num2=tyve

#creating af en funktion til at udføre aritmetiske operationer

def mathOP():

#beregning af sumværdien

Vend tilbagenum1+num2

#beregner forskellen

Vend tilbagenum1-num2

#beregning af multiplikationsværdien

Vend tilbagenum1*num2

#beregning af divisionsværdien

Vend tilbagenum1/num2

#kalder funktionen

Print(matematikOP())

Produktion





I output kan det ses, at funktionen kun returnerer den første værdi, og programmet afsluttes.



For at udføre en lignende opgave med flere retursætninger skal vi oprette fire forskellige funktioner for hver type aritmetisk operation.

#et program til at vise funktionen i returopgørelsen

#definerer en talvariabel

num1=10

#definerer en talvariabel

num2=tyve

#creating af en funktion til at udføre aritmetiske operationer

def sumOP():

#beregning af sumværdien

Vend tilbagenum1+num2

def subtractOP():

#beregner forskellen

Vend tilbagenum1-num2

def multiplikationOP():

#beregning af multiplikationsværdien

Vend tilbagenum1*num2

def divisionOP():

#beregning af divisionsværdien

Vend tilbagenum1/num2

#kalder sum -funktionen

Print('Sumværdien er:',sumOP())

#kalder subtraktionsfunktionen

Print('Forskellen er:',trække OP())

#kalder multiplikationsfunktionen

Print('Multiplikationsværdien er:',multiplikationOP())

#kalder divisionsfunktionen

Print('Divisionsværdien er:',division OP())

Produktion

Vi kan udføre disse multiple aritmetiske operationer inde i en enkelt generatorfunktion med flere udbytteopgørelser.

#et program til at vise arbejdet i udbytteopgørelse

#definerer en talvariabel

num1=10

#definerer en talvariabel

num2=tyve

#creating af en funktion til at udføre aritmetiske operationer

def mathOP():

#beregning af sumværdien

udbyttenum1+num2

#beregner forskellen

udbyttenum1-num2

#beregning af multiplikationsværdien

udbyttenum1*num2

#beregning af divisionsværdien

udbyttenum1/num2

#kalder funktionen

Print('Udskrivning af værdierne:')

#bruger til loop for at få adgang til værdierne fra generatorobjektet

tiljeg i matematikOP():

Print(jeg)

Produktion

Eksempel 2: Return vs. Yield

Lad os se et andet eksempel på afkast- og afkastopgørelser. I det givne eksempel har vi en liste med numre, der sendes til funktionen mod () som et argument. Vi udfører moduloperationen på hvert listenummer og kontrollerer, hvad disse tal er, når de divideres med 10 returnerer nul som en restværdi.

Lad os først implementere dette eksempel i vores Python -script med returnering.

#definerer en liste med numre

myList=[10,tyve,25,30,35,40,halvtreds]

#definerer en funktion til at udføre moduloperationen

def mod(myList):

tiljeg i minListe:

#performing modul drift

hvis(jeg%10==0):

Vend tilbagejeg

Print(mod(myList))

Produktion

Returopgørelsen returnerer kun det første nummer til den, der ringer op, og afslutter funktionens udførelse.

Lad os nu implementere det samme eksempel i vores Python -script med udbytteopgørelsen.

#definerer en liste med numre

myList=[10,tyve,25,30,35,40,halvtreds]

#definerer en funktion til at udføre moduloperationen

def mod(myList):

tiljeg i minListe:

#performing modul drift

hvis(jeg%10==0):

#afkastopgørelsen

udbyttejeg

tiljeg i mod(myList):

Print(jeg)

Produktion

Konklusion

Afslutningsvis er afkast og udbytte to indbyggede Python-søgeord eller udsagn. Retursætningen bruges til at returnere værdien til den, der ringer op fra en funktion, og afslutter udførelsen af ​​programmet, mens afkastudtalelsen producerer et generatorobjekt og kan returnere de flere værdier til den, der ringer op, uden at afslutte udførelsen af ​​programmet. Denne artikel viser alle de fremtrædende forskelle mellem afkast- og afkastopgørelser med eksempler.