Utbytte av Python

Python Yield



Yield er et innebygd Python-søkeord som returnerer verdien (e) fra en funksjon. Utførelsen av funksjonen avsluttes ikke. Den returnerer heller verdien til innringeren og opprettholder funksjonen for utførelse av funksjonen. Utførelsen av funksjonen gjenopptas fra den siste avkastningsoppgaven. Utbyttet lar oss produsere en sekvens av verdier i stedet for en verdi. Den brukes inne i en funksjonskropp. Funksjonen som inneholder en avkastningsangivelse er kjent som generatorfunksjonen.







Det er flere fordeler med å gi søkeord. For eksempel styrer den minnetildelingen og lagrer den lokale variabeltilstanden. Imidlertid øker det kompleksiteten til koden.



Denne artikkelen forklarer bruken av avkastningssøkeordet med eksempler.



Syntaks for avkastning

Avkastningssyntaksen er enkel og grei. Avkastningen initieres med avkastningssøkeordet og syntaksen som følger:





utbytteverdi

Eksempler

La oss nå se eksempler for å forstå bruken og verkene til avkastningsoppgavene. Tradisjonelt avslutter returordet utførelsen av programmet og returnerer en verdi på slutten, mens avkastningen returnerer verdisekvensen. Den lagrer ikke verdien i minnet og returnerer verdien til den som ringer ved kjøretid. I eksemplet nedenfor er en generatorfunksjon definert for å bestemme skuddåret. Et sprang er det året da delbart med fire returnerer null som resten. Avkastningssøkeordet returnerer verdien av et skuddår til den som ringer. Siden den får verdien av et skuddår, stopper den programkjøringen, returnerer verdien og deretter fortsetter utførelsen der den ble stoppet.

#deklarere en generator for å bestemme skuddår
defleapfunc(min liste):
tilJegimin liste:
hvis(Jeg%4==0):
#bruker avkastning
utbytteJeg
#deklarere årslisten
year_list=[2010,2011,2012,2016,2020,2024]
skrive ut('Skrive ut skuddårsverdiene')
tilxileapfunc(year_list):
skrive ut(x)

Produksjon



Utgangen viser serien av skuddår.

La oss se et annet eksempel der generatorfunksjonen gir forskjellige tall og strenger.

#deklarere en generatorfunksjon
defmyfunc():
utbytte 'Merke'
utbytte 'John'
utbytte 'Skredder'
utbytte 'Ivan'
utbytte 10
utbytte tjue
utbytte 30
utbytte 40
utbytte femti
#calling og iterating gjennom generatorfunksjonen
tilJegimyfunc():
#skrive ut verdier
skrive ut(Jeg)

Produksjon

La oss implementere en generatorfunksjon for å beregne og skrive ut kubeverdien til tallrekke. Vi genererer kubeverdiene fra 1 til 30.

#deklarere en generatorfunksjon for å beregne kubeverdi
defkalkstein():
timer=1
#den uendelige mens loop
samtidig som ekte:
#calcumating terning
utbytteval * val * val
#økende verdi med 1
timer=val +1
skrive ut('Kubeverdiene er:')
#calling the generator function
tilJegikalkstein():
hvisJeg>30:
gå i stykker
skrive ut(Jeg)

Produksjon

Utgangen viser kubeverdien mindre enn 30.

Konklusjon

Yield er et innebygd Python-søkeord som ikke avslutter utførelsen av programmet og genererer en rekke verdier. Sammenlignet med returordet, produserer avkastningssøkeordet flere verdier og returnerer til den som ringer. Denne artikkelen forklarer Python Yield med eksempler.