Python udbytte

Python Yield



Yield er et indbygget Python-søgeord, der returnerer værdien / værdierne fra en funktion. Funktionens udførelse afsluttes ikke. Den returnerer snarere værdien til den, der ringer op, og opretholder funktionens udførelsestilstand. Funktionens udførelse genoptages fra den sidste udbytteopgørelse. Udbyttet giver os mulighed for at producere en værdisekvens frem for en værdi. Det bruges inde i en funktionskrop. Funktionen, der indeholder en udbytteopgørelse, er kendt som generatorfunktionen.







Der er flere fordele ved at give søgeord. For eksempel styrer den hukommelsestildelingen og gemmer den lokale variabeltilstand. Det øger imidlertid kodens kompleksitet.



Denne artikel forklarer brugen af ​​afkastsøgeordet med eksempler.



Syntaks for udbytte

Udbyttesyntaksen er enkel og ligetil. Udbyttet initieres med afkastnøgleordet og syntaksen som følger:





udbytteværdi

Eksempler

Lad os nu se eksempler for at forstå brugen og værkerne af udbytteopgørelser. Traditionelt afslutter return -nøgleordet udførelsen af ​​programmet og returnerer en værdi i slutningen, mens yield returnerer værdisekvensen. Den gemmer ikke værdien i hukommelsen og returnerer værdien til den, der ringer, på kørselstidspunktet. I eksemplet nedenfor er en generatorfunktion defineret til at bestemme skudåret. Et spring er det år, hvor delbart med fire returnerer nul som en rest. Nøgleordet udbytte returnerer værdien af ​​skudår til den, der ringer. Da det får værdien af ​​et skudår, stopper det programudførelsen, returnerer værdien og derefter genoptager udførelsen, hvorfra den blev stoppet.

#deklarerer en generator til at bestemme skudår
defleapfunc(min_liste):
tiljegimin_liste:
hvis(jeg%4==0):
#brug af udbytte
udbyttejeg
#deklarering af årslisten
år_liste=[2010,2011,2012,2016,2020,2024]
Print('Udskrivning af springårets værdier')
tilxileapfunc(år_liste):
Print(x)

Produktion



Output viser rækken af ​​skudår.

Lad os se et andet eksempel, hvor generatorfunktionen giver forskellige tal og strenge.

#deklarerer en generatorfunktion
defmyfunc():
udbytte 'Mærke'
udbytte 'John'
udbytte 'Taylor'
udbytte 'Ivan'
udbytte 10
udbytte tyve
udbytte 30
udbytte 40
udbytte halvtreds
#calling og iterating gennem generatorfunktionen
tiljegimyfunc():
#udskrivning af værdier
Print(jeg)

Produktion

Lad os implementere en generatorfunktion til at beregne og udskrive kubeværdien af ​​talfølge. Vi genererer terninger fra 1 til 30.

#deklarerer en generatorfunktion til at beregne terningens værdi
defkalksten():
timer=1
#den uendelige mens loop
mens Sand:
#calcumating terning
udbytteval * val * val
#stigende værdi med 1
timer=val +1
Print('Terningerne er:')
#kalder generatorfunktionen
tiljegikalksten():
hvisjeg>30:
pause
Print(jeg)

Produktion

Outputtet viser terningens værdi mindre end 30.

Konklusion

Yield er et indbygget Python-søgeord, der ikke afslutter udførelsen af ​​programmet og genererer en række værdier. I sammenligning med return -søgeordet producerer output -søgeordet flere værdier og vender tilbage til den, der ringer op. Denne artikel forklarer Python Yield med eksempler.