Piton

Prinos Pythona

Prinos Pythona

Yield je ugrađena ključna riječ u Python koja vraća vrijednost (vrijednosti) iz funkcije. Izvršenje funkcije nije prekinuto. Umjesto toga, vraća vrijednost pozivatelju i održava stanje izvršenja funkcije. Izvršenje funkcije nastavlja se od zadnjeg izraza prinosa. Prinos nam omogućuje da proizvedemo slijed vrijednosti, a ne jednu vrijednost. Koristi se unutar funkcionalnog tijela. Funkcija koja sadrži izjavu o prinosu poznata je kao funkcija generatora.

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

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

Sintaksa prinosa

Sintaksa prinosa je jednostavna i jasna. Prinos se započinje s ključnom riječi yield i sintaksom kako slijedi:

vrijednost prinosa

Primjeri

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

#deklariranje generatora za određivanje prijestupne godine
def leapfunc (moj_popis):
jer sam na svom_popisu:
ako (i% 4 == 0):
#koristeći prinos
prinos i
#deklarisanje popisa godina
year_list = [2010,2011,2012,2016,2020,2024]
print ("Ispis vrijednosti prijestupne godine")
za x u leapfunc (year_list):
ispis (x)

Izlaz

Rezultat prikazuje niz prestupnih godina.

Pogledajmo još jedan primjer gdje funkcija generatora daje razne brojeve i nizove.

#deklariranje funkcije generatora
def myfunc ():
prinos "Oznaka"
prinos "John"
prinos "Taylor"
prinos "Ivan"
prinos 10
prinos 20
prinos 30
prinos 40
prinos 50
#pozivanje i ponavljanje kroz funkciju generatora
jer ja u myfunc ():
#printing vrijednosti
ispis (i)

Izlaz

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

#deklarisanje funkcije generatora za izračunavanje vrijednosti kocke
def calcube ():
val = 1
# beskonačna while petlja
dok je Istina:
#kalkulirajuća kocka
prinos val * val * val
#uvećavanje vrijednosti za 1
val = val + 1
print ("Vrijednosti kocke su:")
#pozivanje funkcije generatora
za i u calcube ():
ako sam> 30:
pauza
ispis (i)

Izlaz

Izlaz prikazuje vrijednost kocke manju 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 daje više vrijednosti i vraća se pozivatelju. Ovaj članak objašnjava Python Yield s primjerima.

Najbolji Linux Distros za igre na sreću 2021. godine
Linux operativni sustav daleko je prevalio svoj izvorni, jednostavni izgled zasnovan na poslužitelju. Ovaj se OS posljednjih godina izuzetno poboljšao...
Kako snimiti i struji svoju igraću sesiju na Linuxu
U prošlosti se igranje igara smatralo samo hobijem, ali s vremenom je igračka industrija zabilježila ogroman rast u pogledu tehnologije i broja igrača...
Najbolje igre za ručno praćenje
Oculus Quest nedavno je predstavio sjajnu ideju ručnog praćenja bez kontrolera. Sa sve većim brojem igara i aktivnosti koje izvršavaju podršku bilo fo...