Yield er et Python-indbygget nøgleord, der returnerer værdien (e) fra en funktion. Udførelsen af funktionen afsluttes ikke. Snarere returnerer den værdien til den, der ringer op, og opretholder eksekveringstilstanden for funktionen. Funktionens udførelse genoptages fra den sidste udbytteopgørelse. Udbyttet giver os mulighed for at producere en sekvens af værdier snarere end en værdi. Det bruges inde i et funktionsorgan. Funktionen, der indeholder en udbytteopgørelse, er kendt som generatorfunktionen.
Der er flere fordele ved at give søgeord. For eksempel styrer det hukommelsestildelingen og gemmer den lokale variabeltilstand. Det øger imidlertid kodens kompleksitet.
Denne artikel forklarer brugen af udbytteordet med eksempler.
Syntaks for udbytte
Udbytte-syntaksen er enkel og ligetil. Udbyttet initieres med udbytte-nøgleordet og syntaksen som følger:
udbytteværdiEksempler
Lad os nu se eksempler for at forstå brugen og værkerne af udbytteopgørelser. Traditionelt afslutter retur nøgleordet udførelsen af programmet og returnerer en værdi i slutningen, mens udbytte returnerer rækkefølgen af værdier. Den gemmer ikke værdien i hukommelsen og returnerer værdien til den, der ringer op ved kørselstid. I nedenstående eksempel er en generatorfunktion defineret til at bestemme skudåret. Et spring er det år, hvor det kan deles med fire, returnerer nul som en rest. Udbytte nøgleordet returnerer værdien af skudåret til den, der ringer op. Da det får værdien af et skudår, stopper det programudførelsen, returnerer værdien og genoptager derefter udførelsen, hvorfra den blev stoppet.
#declaring en generator til bestemmelse af skudårdef leapfunc (min_liste):
for jeg i min_liste:
hvis (i% 4 == 0):
# bruger udbytte
udbytte i
# erklærer årelisten
year_list = [2010,2011,2012,2016,2020,2024]
print ("Udskrivning af springværdier")
for x i leapfunc (årsliste):
udskrive (x)
Produktion
Outputtet viser rækken af skudår.
Lad os se et andet eksempel, hvor generatorfunktionen giver forskellige tal og strenge.
#declaring en generatorfunktiondef myfunc ():
give "Mark"
give "John"
give "Taylor"
give "Ivan"
udbytte 10
udbytte 20
udbytte 30
udbytte 40
udbytte 50
#opkald og iterering gennem generatorfunktionen
for jeg i myfunc ():
#printing værdier
udskrive (i)
Produktion
Lad os implementere en generatorfunktion til at beregne og udskrive terningsværdien af talrækkefølgen. Vi genererer terningsværdierne fra 1 til 30.
#declaring en generatorfunktion til beregning af terningsværdiendef calcube ():
val = 1
# den uendelige mens sløjfe
mens det er sandt:
#beregner terning
udbytte val * val * val
# stigende værdi med 1
val = val + 1
print ("Kubeværdierne er:")
# kalder generatorfunktionen
for jeg i calcube ():
hvis jeg> 30:
pause
udskrive (i)
Produktion
Outputtet viser terningsværdien mindre end 30.
Konklusion
Yield er et indbygget Python-nøgleord, der ikke afslutter udførelsen af programmet og genererer en række værdier. I sammenligning med returnøgleordet producerer afkastnøgleordet flere værdier og vender tilbage til den, der ringer op. Denne artikel forklarer Python Yield med eksempler.