Python prinos

Python Yield



Yield je ugrađena Python ključna riječ koja vraća vrijednosti iz funkcije. Izvođenje funkcije nije prekinuto. Dapače, vraća vrijednost pozivatelju i održava stanje izvođenja funkcije. Izvršenje funkcije nastavlja se iz posljednje izjave o prinosu. Prinos nam omogućuje da proizvedemo niz vrijednosti, a ne jednu vrijednost. Koristi se unutar tijela funkcije. Funkcija koja sadrži izjavu o prinosu poznata je kao funkcija generatora.







Dobivanje ključne riječi ima nekoliko prednosti. Na primjer, kontrolira dodjelu memorije i sprema stanje lokalne varijable. Međutim, to povećava složenost koda.



Ovaj članak objašnjava primjere ključne riječi yield s primjerima.



Sintaksa prinosa

Sintaksa prinosa je jednostavna i jasna. Prinos se započinje ključnom riječi yield i sintaksom na sljedeći način:





prinosvrijednost

Primjeri

Pogledajmo sada primjere za razumijevanje uporabe i rada izjava o prinosu. Tradicionalno, ključna riječ return završava izvršavanje programa i vraća vrijednost na kraju, dok yield vraća niz vrijednosti. Ne pohranjuje vrijednost u memoriju i vraća vrijednost pozivatelju tijekom izvođenja. U dolje navedenom primjeru definirana je funkcija generatora za određivanje prijestupne godine. Skok je ona godina kada je djeljivo s četiri vrati nulu kao ostatak. Ključna riječ yield vraća vrijednost prijestupne godine pozivatelju. Kako će dobiti vrijednost prijestupne godine, pauzirat će izvršenje programa, vratiti vrijednost, a zatim nastaviti izvođenje s mjesta na kojem je zaustavljeno.

#deklariranje generatora za određivanje prijestupne godine
defleapfunc(moj_popis):
zaiumoj_popis:
ako(i%4==0):
#korištenje prinosa
prinosi
#odjavljivanje popisa godina
popis_godine=[2010. godine,2011. godine,2012,2016,2020. godine,2024. godine]
ispisati('Ispis vrijednosti prijestupne godine')
zaxuleapfunc(popis_godine):
ispisati(x)

Izlaz



Rezultat prikazuje niz prijestupnih godina.

Pogledajmo još jedan primjer gdje funkcija generatora daje različite brojeve i nizove.

#deklariranje funkcije generatora
defmyfunc():
prinos 'Ocjena'
prinos 'Ivan'
prinos 'Taylor'
prinos 'Ivan'
prinos 10
prinos dvadeset
prinos 30
prinos 40
prinos pedeset
#pozivanje i ponavljanje kroz funkciju generatora
zaiumyfunc():
#vrijednosti ispisa
ispisati(i)

Izlaz

Implementirajmo funkciju generatora za izračunavanje i ispis kocke vrijednosti niza brojeva. Generiramo vrijednosti kocke od 1 do 30.

#deklariranje funkcije generatora za izračunavanje vrijednosti kocke
defračunaj():
sati=1
#beskonačna while petlja
dok Pravi:
#računavajuća kocka
prinosval * val * val
#povećanje vrijednosti za 1
sati=val +1
ispisati('Vrijednosti kocke su:')
#pozivanje funkcije generatora
zaiuračunaj():
akoi>30:
pauza
ispisati(i)

Izlaz

Izlaz prikazuje vrijednost kocke manje od 30.

Zaključak

Yield je ugrađena ključna riječ Python koja ne prekida izvršenje programa i generira niz vrijednosti. U usporedbi s ključnom riječi return, ključna riječ yield proizvodi više vrijednosti i vraća se pozivatelju. Ovaj članak objašnjava primjere Python Yielda.