Saagis on Pythoni sisseehitatud märksõna, mis tagastab funktsiooni väärtuse (d). Funktsiooni täitmist ei lõpetata. Pigem tagastab see helistajale väärtuse ja säilitab funktsiooni täitmise oleku. Funktsiooni täitmist jätkatakse viimasest tootluslausest. Saagis võimaldab meil toota väärtuste jada, mitte ühe väärtuse. Seda kasutatakse funktsionaalse keha sees. Funktsiooni, mis sisaldab saagislauset, nimetatakse generaatori funktsiooniks.
Märksõna tootmisel on mitmeid eeliseid. Näiteks kontrollib see mälu jaotust ja salvestab kohaliku muutuja oleku. Kuid see suurendab koodi keerukust.
See artikkel selgitab tootluse märksõna kasutamist näidetega.
Saagise süntaks
Saagise süntaks on lihtne ja arusaadav. Saagikus algatatakse tootluse märksõna ja süntaksiga järgmiselt:
saagise väärtusNäited
Nüüd vaatame näiteid, kuidas mõista tootluslausete kasutamist ja toiminguid. Traditsiooniliselt lõpetab tagastussõna märksõna programmi käivitamise ja tagastab väärtuse lõpus, saagis aga väärtuste jada. See ei salvesta väärtust mällu ja tagastab selle helistajale jooksmise ajal. Allpool toodud näites on hüppeaasta määramiseks määratletud generaatori funktsioon. Hüpe on see aasta, kui neljaga jagatav tagastab ülejäänud väärtusena nulli. Tootluse märksõna tagastab helistajale hüppeaasta väärtuse. Kuna see saab hüppeaasta väärtuse, peatab see programmi täitmise, tagastab väärtuse ja jätkab seejärel täitmist sealt, kus see peatati.
#deklaratsioon generaatorile, et määrata liigaastadef leapfunc (minu_loend):
minu jaoks minu_loendis:
kui (i% 4 == 0):
#kasutatavus
saagis i
#deklaratsioon aastatest
aasta_loend = [2010,2011,2012,2016,2020,2024]
print ("Liigaasta väärtuste printimine")
x-le hüpikaknas (aasta_loend):
print (x)
Väljund
Väljund näitab liigaaste aastaid.
Vaatame veel ühte näidet, kus generaatori funktsioon annab erinevaid numbreid ja stringe.
#generaatori funktsiooni deklareeriminedef myfunc ():
saagis "Mark"
saagikus "John"
saagikus "Taylor"
saagikus "Ivan"
saagis 10
saagis 20
saagis 30
saagis 40
saagis 50
# helistamine ja itereerimine läbi generaatori funktsiooni
i jaoks minu funktsioonis ():
#printing väärtused
trükk (i)
Väljund
Rakendame arvude järjestuse kuupväärtuse arvutamiseks ja printimiseks generaatori funktsiooni. Genereerime kuubi väärtused vahemikus 1 kuni 30.
#kuupväärtuse arvutamiseks generaatori funktsiooni deklareeriminedef calcube ():
val = 1
# lõpmatu samal ajal silmus
tõsi:
#arvestav kuup
saagis val * val * val
# väärtuse suurendamine 1 võrra
val = val + 1
print ("Kuubi väärtused on:")
#generaatori funktsiooni kutsumine
i jaoks kalkubis ():
kui i> 30:
murda
trükk (i)
Väljund
Väljund näitab kuubi väärtust alla 30.
Järeldus
Saagikus on Pythoni sisseehitatud märksõna, mis ei lõpeta programmi käivitamist ega genereeri väärtuste jada. Võrreldes tagasipöörduva märksõnaga toodab tootluse märksõna mitu väärtust ja naaseb helistajale. Selles artiklis selgitatakse näidetega Pythoni saagikust.