Python Yield vs. Return

Python Yield Vs Return



Python er det mye brukte generelle programmeringsspråket i nyere tid. Utbyttet er et innebygd Python-søkeord som brukes til å lage generatorfunksjonene. Funksjonen genererer en rekke resultater. Den stopper utførelsen av programmet, sender resultatverdien tilbake til den som ringer, og fortsetter utførelsen fra det siste utbyttet. I tillegg sender avkastningsfunksjonen den genererte resultatserien i form av et generatorobjekt. På den annen side er returen også et innebygd søkeord i Python som avslutter funksjonen og sender verdien tilbake til den som ringer.

Denne artikkelen skisserer forskjellene mellom avkastning og avkastning med eksempler.







Forskjeller mellom avkastning og avkastning

Til å begynne med er det mange fremtredende forskjeller mellom avkastning og avkastning. La oss først diskutere hva dette er.



Komme tilbake Utbytte
Returoppgaven returnerer bare en enkelt verdi til den som ringer. Utbytteoppgaven kan returnere en rekke resultater til den som ringer i form av et generatorobjekt.
Returen forlater funksjonen, og i tilfelle av en sløyfe, avviser den løkken. Det er den siste setningen som skal plasseres inne i funksjonen. Det opphever ikke funksjonens lokale variabler. Den suspenderer utførelsen og sender verdien tilbake til den som ringer, og fortsetter utførelsen av programmet fra den siste avkastningsoppgaven.
Logisk sett bør en funksjon bare ha en returoppgave. Det kan være mer enn én avkastningsangivelse inne i funksjonen.
Returoppgaven kan bare kjøres én gang. Avkastningsoppgaven kan kjøres flere ganger.
Returoppgaven er plassert inne i en vanlig Python -funksjon. Utbytteoppgaven konverterer en vanlig funksjon til en generatorfunksjon.

Eksempel 1: Avkastning vs. avkastning

La oss nå se forskjellen mellom avkastnings- og avkastningsoppgavene gjennom eksempler. I eksempelprogrammet gitt nedenfor har vi brukt flere retursetninger. Du kan observere at utførelsen av programmet avsluttes etter den første returoppgaven, og resten av koden vil ikke bli utført.



#et program for å vise hvordan returoppgaven fungerer

#definere en tallvariabel

num1=10

#definere en tallvariabel

num2=tjue

#creating a function to perform aritmetic operations

def mathOP():

#beregning av sumverdien

komme tilbakenum1+num2

#beregner forskjellen

komme tilbakenum1-num2

#beregning av multiplikasjonsverdien

komme tilbakenum1*num2

#beregning av divisjonsverdien

komme tilbakenum1/num2

#kaller funksjonen

skrive ut(matematikkOP())

Produksjon





I utgangen kan det sees at funksjonen bare returnerer den første verdien, og programmet avsluttes.



For å utføre en lignende oppgave med flere retursetninger, må vi lage fire forskjellige funksjoner for hver type aritmetisk operasjon.

#et program for å vise hvordan returoppgaven fungerer

#definere en tallvariabel

num1=10

#definere en tallvariabel

num2=tjue

#creating a function to perform aritmetic operations

def sumOP():

#beregning av sumverdien

komme tilbakenum1+num2

def subtractOP():

#beregner forskjellen

komme tilbakenum1-num2

def multiplikasjonOP():

#beregning av multiplikasjonsverdien

komme tilbakenum1*num2

def divisjon OP():

#beregning av divisjonsverdien

komme tilbakenum1/num2

#calling sum -funksjonen

skrive ut('Sumverdien er:',sumOP())

#calling subtraksjon funksjonen

skrive ut('Forskjellen er:',trekke fraOP())

#calling multiplikasjonsfunksjonen

skrive ut('Multiplikasjonsverdien er:',multiplikasjonOP())

#calling the division function

skrive ut('Divisjonsverdien er:',divisjon OP())

Produksjon

Vi kan utføre disse flere aritmetiske operasjonene inne i en enkelt generatorfunksjon med flere avkastningssetninger.

#et program for å vise arbeidet med avkastningsoppgaven

#definere en tallvariabel

num1=10

#definere en tallvariabel

num2=tjue

#creating a function to perform aritmetic operations

def mathOP():

#beregning av sumverdien

utbyttenum1+num2

#beregner forskjellen

utbyttenum1-num2

#beregning av multiplikasjonsverdien

utbyttenum1*num2

#beregning av divisjonsverdien

utbyttenum1/num2

#kaller funksjonen

skrive ut('Skrive ut verdiene:')

#bruk for loop for å få tilgang til verdiene fra generatorobjektet

tiljeg i matteOP():

skrive ut(Jeg)

Produksjon

Eksempel 2: Avkastning vs. avkastning

La oss se et annet eksempel på avkastning og avkastning. I det gitte eksemplet har vi en liste over tall som sendes til funksjonen mod () som et argument. Vi utfører moduloperasjonen på hvert antall lister og sjekker hva som er disse tallene delt på 10 returnerer null som en restverdi.

La oss først implementere dette eksemplet i vårt Python -skript med returerklæring.

#definere en liste med tall

min liste=[10,tjue,25,30,35,40,femti]

#definere en funksjon for å utføre moduloperasjonen

def mod(min liste):

tiljeg i min liste:

#presterende moduloperasjon

hvis(Jeg%10==0):

komme tilbakeJeg

skrive ut(imot(min liste))

Produksjon

Returoppgaven returnerer bare det første nummeret til den som ringer og avslutter utførelsen av funksjonen.

La oss nå implementere det samme eksemplet i Python -skriptet vårt med avkastningserklæringen.

#definere en liste med tall

min liste=[10,tjue,25,30,35,40,femti]

#definere en funksjon for å utføre moduloperasjonen

def mod(min liste):

tiljeg i min liste:

#presterende moduloperasjon

hvis(Jeg%10==0):

#avkastningsoppgaven

utbytteJeg

tiljeg i mod(min liste):

skrive ut(Jeg)

Produksjon

Konklusjon

Avslutningsvis er avkastningen og avkastningen to innebygde Python-søkeord eller utsagn. Returoppgaven brukes til å returnere verdien til innringeren fra en funksjon og avslutter utførelsen av programmet, mens avkastningssetningen produserer et generatorobjekt og kan returnere flere verdier til den som ringer uten å avslutte utførelsen av programmet. Denne artikkelen viser alle de fremtredende forskjellene mellom avkastnings- og avkastningsoppgavene med eksempler.