Pythoni saagikus

Python Yield



Saagikus on Pythoni sisseehitatud märksõna, mis tagastab funktsiooni väärtuse. Funktsiooni täitmist ei lõpetata. Pigem tagastab see väärtuse helistajale ja säilitab funktsiooni täitmise oleku. Funktsiooni täitmist jätkatakse viimasest tootlusavaldusest. Saagikus võimaldab meil toota väärtuste jada, mitte ühte väärtust. Seda kasutatakse funktsionaalse keha sees. Funktsiooni, mis sisaldab tootlust, nimetatakse generaatori funktsiooniks.







Märksõna andmisel on mitmeid eeliseid. Näiteks kontrollib see mälu eraldamist ja salvestab kohaliku muutuja oleku. See aga suurendab koodi keerukust.



See artikkel selgitab tootluse märksõna kasutamist näidetega.



Saagikuse süntaks

Saagisüntaks on lihtne ja arusaadav. Tootlust alustatakse tootluse märksõna ja süntaksi abil järgmiselt.





saagikusväärtus

Näited

Vaatame nüüd näiteid saagikuse avalduste kasutamise ja töö mõistmiseks. Traditsiooniliselt lõpetab tagasisaatmise märksõna programmi täitmise ja tagastab lõpus väärtuse, samas kui tootlus tagastab väärtuste jada. See ei salvesta väärtust mällu ja tagastab väärtuse helistajale töö ajal. Allpool toodud näites on liigaasta määramiseks määratletud generaatori funktsioon. Hüpe on see aasta, kui jagatuna neljaga tagastatakse jäägina null. Saagis märksõna tagastab helistajale liigaasta väärtuse. Kui see saab liigaasta väärtuse, peatab see programmi täitmise, tagastab selle väärtuse ja jätkab seejärel täitmist sealt, kus see peatati.

#generaatori deklareerimine liigaasta määramiseks
defhüppeline(my_list):
eestisissemy_list:
kui(mina%4==0):
#kasumit kasutades
saagikusi
#aastate nimekirja kuulutamine
aasta_nimekiri=[2010,2011,2012,2016,2020,2024]
printida('Liigaasta väärtuste printimine')
eestxsissehüppeline(aasta_nimekiri):
printida(x)

Väljund



Väljund näitab liigaastate seeriaid.

Vaatame veel ühte näidet, kus generaatori funktsioon annab erinevaid numbreid ja stringe.

#generaatori funktsiooni deklareerimine
defmyfunc():
saagikus 'Märgi'
saagikus 'John'
saagikus 'Taylor'
saagikus 'Ivan'
saagikus 10
saagikus kakskümmend
saagikus 30
saagikus 40
saagikus viiskümmend
#helistamine ja iteratsioon generaatori funktsiooni kaudu
eestisissemyfunc():
#väärtuste trükkimine
printida(i)

Väljund

Rakendame generaatorifunktsiooni numbrijada kuupväärtuse arvutamiseks ja printimiseks. Loome kuubiku väärtused vahemikus 1 kuni 30.

#kuulutuse väärtuse arvutamiseks generaatori funktsiooni deklareerimine
defkalkulaator():
tundi=1
#lõpmatu ajal silmus
samas Tõsi:
#arvestav kuubik
saagikusval * val * val
#väärtuse suurendamine 1 võrra
tundi=val +1
printida('Kuubi väärtused on järgmised:')
#generaatori funktsiooni helistamine
eestisissekalkulaator():
kuii>30:
murda
printida(i)

Väljund

Väljund näitab kuubi väärtust alla 30.

Järeldus

Tootlikkus on Pythoni sisseehitatud märksõna, mis ei lõpeta programmi täitmist ega genereeri väärtuste seeriat. Võrreldes tagasisaatmise märksõnaga toodab tootlikkus märksõna mitu väärtust ja naaseb helistajale. See artikkel selgitab Pythoni tootlust näidetega.