Pythonutbyte

Python Yield



Yield är ett inbyggt Python-sökord som returnerar värdena från en funktion. Funktionens utförande avslutas inte. Det returnerar snarare värdet till den som ringer och bibehåller funktionens körningstillstånd. Funktionens utförande återupptas från det senaste avkastningstalet. Avkastningen tillåter oss att producera en sekvens av värden snarare än ett värde. Det används inuti en funktionskropp. Funktionen som innehåller en avkastningssats är känd som generatorfunktionen.







Det finns flera fördelar med att ge sökord. Till exempel styr den minnesallokeringen och sparar det lokala variabeltillståndet. Det ökar emellertid kodens komplexitet.



Den här artikeln förklarar användningen av avkastningsordet med exempel.



Syntax för avkastning

Avkastningssyntaxen är enkel och okomplicerad. Avkastningen initieras med avkastningsordet och syntaxen enligt följande:





avkastningvärde

Exempel

Låt oss nu se exempel för att förstå användningen och verkningarna av avkastningsuppgifter. Traditionellt avslutar returordet körningen av programmet och returnerar ett värde i slutet, medan avkastningen returnerar värdesekvensen. Det lagrar inte värdet i minnet och returnerar värdet till den som ringer vid körtid. I exemplet nedan definieras en generatorfunktion för att bestämma skottåret. Ett språng är det året då delbart med fyra ger noll som återstoden. Avkastningsordet returnerar värdet på ett skottår till den som ringer. Eftersom det får värdet för ett skottår, kommer det att pausa programkörningen, returnera värdet och sedan fortsätta körningen från där det stoppades.

#deklarera en generator för att bestämma skottår
defleapfunc(min lista):
föriimin lista:
om(jag%4==0):
#använda avkastning
avkastningi
#deklarera årslistan
year_list=[2010,2011,2012,2016,2020,2024]
skriva ut('Skriva ut skottårets värden')
förxileapfunc(year_list):
skriva ut(x)

Produktion



Resultatet visar serien av skottår.

Låt oss se ett annat exempel där generatorfunktionen ger olika nummer och strängar.

#deklarera en generatorfunktion
defmyfunc():
avkastning 'Mark'
avkastning 'John'
avkastning 'Taylor'
avkastning 'Ivan'
avkastning 10
avkastning tjugo
avkastning 30
avkastning 40
avkastning femtio
#calling och iterating genom generatorfunktionen
föriimyfunc():
#skriva ut värden
skriva ut(i)

Produktion

Låt oss implementera en generatorfunktion för att beräkna och skriva ut kubvärdet för talföljd. Vi genererar kubvärdena från 1 till 30.

#deklarera en generatorfunktion för att beräkna kubvärdet
defkalksten():
timmar=1
#den oändliga medan loop
medan Sann:
#calcumating kub
avkastningval*val*val
#ökningsvärde med 1
timmar=val +1
skriva ut('Kubvärdena är:')
#kallar generatorfunktionen
föriikalksten():
omi>30:
ha sönder
skriva ut(i)

Produktion

Utmatningen visar kubvärdet mindre än 30.

Slutsats

Yield är ett inbyggt Python-nyckelord som inte avslutar körningen av programmet och genererar en serie värden. Jämfört med returordet producerar nyckelordet avkastning flera värden och återgår till den som ringer. Den här artikeln förklarar Python -utbytet med exempel.