Python

Python Yield vs. Komme tilbake

Python Yield vs. Komme tilbake

Python er det allment brukte programmeringsspråket for nyere tid. Utbyttet er et innebygd Python-nøkkelord som brukes til å lage generatorfunksjonene. Funksjonen genererer en rekke resultater. Det stopper gjennomføringen av programmet, sender resultatverdien tilbake til den som ringer, og fortsetter utførelsen fra siste avkastning. I tillegg til det, sender avkastningsfunksjonen den genererte resultatserien i form av et generatorobjekt. På den annen side er returen også et innebygd nøkkelord 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 retur

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

Komme tilbake Utbytte
Returoppgaven returnerer bare en enkelt verdi til den som ringer. Avkastningsoppgaven kan returnere en serie resultater til innringeren i form av et generatorobjekt.
Returen går ut av funksjonen, og i tilfelle en sløyfe avviser den sløyfen. Det er den siste setningen som skal plasseres inne i funksjonen. Det avskaffer ikke funksjonens lokale variabler. Det suspenderer utførelsen og sender verdien tilbake til den som ringer, og fortsetter utførelsen av programmet fra den siste avkastningsoppgaven.
Logisk sett skal en funksjon bare ha en returoppgave. Det kan være mer enn en avkastningsoppgave inne i funksjonen.
Returoppgaven kan bare løpe en gang. Avkastningsoppgaven kan løpe flere ganger.
Returoppgaven er plassert i en vanlig Python-funksjon. Avkastningsoppgaven konverterer en vanlig funksjon til en generatorfunksjon.

Eksempel1: Returner vs. Utbytte

La oss nå se forskjellen mellom avkastnings- og avkastningsuttalelser gjennom eksempler. I eksempelprogrammet gitt nedenfor har vi brukt flere returuttalelser. 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 = 20
#opprette en funksjon for å utføre aritmetiske operasjoner

def mathOP ():
#beregner sumverdien

return num1 + num2
#beregner forskjellen

retur num1-num2
#beregner multiplikasjonsverdien

retur num1 * num2
#beregner divisjonsverdien

return num1 / num2
#kaller funksjonen

skriv ut (mathOP ())

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 returuttalelser, 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 = 20
#opprette en funksjon for å utføre aritmetiske operasjoner

def sumOP ():
#beregner sumverdien

retur num1 + num2
def subtrahere OP ():
#beregner forskjellen

retur num1-num2
def multiplikasjon OP ():
#beregner multiplikasjonsverdien

retur num1 * num2
def divisjon OP ():
#beregner divisjonsverdien

return num1 / num2
#calling sum-funksjonen

print ("Summen er:", sumOP ())
#calling subtraksjonsfunksjonen

print ("Differensverdien er:", subtraher OP ())
#calling multiplikasjonsfunksjonen

print ("Multiplikasjonsverdien er:", multiplicationOP ())
#calling divisjonsfunksjonen

print ("Divisjonsverdien er:", divisionOP ())

Produksjon

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

# et program for å vise hvordan avkastningsoppgaven fungerer

#definere en tallvariabel

num1 = 10
#definere en tallvariabel

num2 = 20
#opprette en funksjon for å utføre aritmetiske operasjoner

def mathOP ():
#beregner sumverdien

avkastning num1 + num2
#beregner forskjellen

avkastning num1-num2
#beregner multiplikasjonsverdien

avkastning num1 * num2
#beregner divisjonsverdien

avkastning num1 / num2
#kaller funksjonen

print ("Skrive ut verdiene:")
# bruker for loop for å få tilgang til verdiene fra generatorobjektet

for jeg i mathOP ():
skrive ut (i)

Produksjon

Eksempel2: Retur vs. Utbytte

La oss se et annet eksempel på avkastning og avkastning. I det gitte eksemplet har vi en liste over tall som sendes til mod () -funksjonen 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 returuttalelse.

#definerer en liste med tall

myList = [10,20,25,30,35,40,50]
#defining en funksjon for å utføre moduloperasjonen

def mod (myList):
for jeg i myList:
#performing modulus operation

hvis (i% 10 == 0):
returnere jeg
skriv ut (mod (myList))

Produksjon

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

La oss nå implementere det samme eksemplet i vårt Python-skript med avkastningsuttalelsen.

#definerer en liste med tall

myList = [10,20,25,30,35,40,50]
#defining en funksjon for å utføre moduloperasjonen

def mod (myList):
for jeg i myList:
#performing modulus operation

hvis (i% 10 == 0):
# avkastningsoppgaven

gi i
for jeg i mod (myList):
skrive ut (i)

Produksjon

Konklusjon

Avslutningsvis er avkastning og avkastning to innebygde Python-nøkkelord eller uttalelser. Returuttalelsen brukes til å returnere verdien til innringeren fra en funksjon og avslutter utførelsen av programmet, mens avkastningsoppgaven produserer et generatorobjekt og kan returnere flere verdier til innringeren uten å avslutte utførelsen av programmet. Denne artikkelen viser alle de fremtredende forskjellene mellom avkastning og avkastning med eksempler.

Shadow of the Tomb Raider for Linux Tutorial
Shadow of the Tomb Raider er det tolvte tilskuddet til Tomb Raider-serien - et action-eventyrspill-franchise opprettet av Eidos Montreal. Spillet ble ...
Hvordan øke FPS i Linux?
FPS står for Bilder per sekund. FPSs oppgave er å måle bildefrekvensen i videoavspilling eller spillprestasjoner. Med enkle ord betegnes antall uavbru...
Topp Oculus App Lab-spill
Hvis du er Oculus-hodesettinnehaver, må du være klar over sideloading. Sidelading er prosessen med å installere ikke-butikkinnhold på hodesettet. Side...