Python

Python Yield

Python Yield

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ærdi

Eksempler

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år
def 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 generatorfunktion
def 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ærdien
def 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.

Sådan udvikler du et spil på Linux
For et årti siden ville ikke mange Linux-brugere forudsige, at deres foretrukne operativsystem en dag ville være en populær spilplatform til kommercie...
Open Source-porte med kommercielle spilmotorer
Gratis, open source og cross-platform spilmotorgendringer kan bruges til at spille gamle såvel som nogle af de temmelig nylige spiltitler. Denne artik...
Bedste kommandoliniespil til Linux
Kommandolinjen er ikke kun din største allierede, når du bruger Linux, den kan også være kilde til underholdning, fordi du kan bruge den til at spille...