Yield er et Python innebygd nøkkelord som returnerer verdien (e) fra en funksjon. Utførelsen av funksjonen avsluttes ikke. Snarere returnerer den verdien til den som ringer og opprettholder kjøringstilstanden til funksjonen. Utførelsen av funksjonen gjenopptas fra den siste avkastningsoppgaven. Utbyttet tillater oss å produsere en sekvens av verdier i stedet for en verdi. Den brukes inne i en funksjonskropp. Funksjonen som inneholder en avkastningsoppgave er kjent som generatorfunksjonen.
Det er flere fordeler å gi søkeord. For eksempel kontrollerer den minnetildelingen og lagrer den lokale variabeltilstanden. Imidlertid øker det kodenes kompleksitet.
Denne artikkelen forklarer bruken av avkastningsnøkkelordet med eksempler.
Syntaks for avkastning
Avkastningssyntaks er enkel og grei. Utbyttet initieres med avkastningsnøkkelordet og syntaksen som følger:
avkastningsverdiEksempler
La oss nå se eksempler for å forstå bruken og verkene av avkastningsuttalelser. Tradisjonelt avslutter returnøkkelordet utførelsen av programmet og returnerer en verdi på slutten, mens avkastning returnerer verdisekvensen. Den lagrer ikke verdien i minnet og returnerer verdien til den som ringer på kjøretid. I eksemplet nedenfor er en generatorfunksjon definert for å bestemme skuddåret. Et sprang er det året når det kan deles med fire, returnerer null som en rest. Avkastningsnøkkelordet returnerer verdien av skuddåret til den som ringer. Ettersom det vil få verdien av skuddåret, vil den stoppe programkjøringen, returnere verdien og deretter gjenoppta kjøringen der den ble stoppet.
#declaring en generator for å bestemme skuddårdef leapfunc (min_liste):
for jeg i min_liste:
hvis (i% 4 == 0):
# bruker avkastning
gi i
#declaring the year list
year_list = [2010,2011,2012,2016,2020,2024]
print ("Skrive ut skuddårsverdiene")
for x i leapfunc (årsliste):
skriv ut (x)
Produksjon
Produksjonen viser serien av skuddår.
La oss se et annet eksempel der generatorfunksjonen gir forskjellige tall og strenger.
#declaring en generatorfunksjondef myfunc ():
gi "Mark"
gi "John"
gi "Taylor"
gi "Ivan"
utbytte 10
gi 20
gi 30
gi 40
gi 50
#calling og iterating gjennom generatorfunksjonen
for jeg i myfunc ():
#printingsverdier
skrive ut (i)
Produksjon
La oss implementere en generatorfunksjon for å beregne og skrive ut kubeverdien av tallsekvensen. Vi genererer kubeverdiene fra 1 til 30.
#declaring en generatorfunksjon for å beregne kubeverdiendef calcube ():
val = 1
# den uendelige mens løkken
mens det er sant:
#calcumating cube
avkastningsval * val * val
# økende verdi med 1
val = val + 1
print ("Kubeverdiene er:")
#calling generatorfunksjonen
for i i calcube ():
hvis jeg er> 30:
gå i stykker
skrive ut (i)
Produksjon
Utgangen viser kubeverdien mindre enn 30.
Konklusjon
Yield er et Python innebygd nøkkelord som ikke avslutter kjøringen av programmet og genererer en serie verdier. I sammenligning med returnøkkelordet gir avkastningsnøkkelordet flere verdier og returnerer til den som ringer. Denne artikkelen forklarer Python Yield med eksempler.