Python ienesīgums

Python Yield



Ienesīgums ir Python iebūvēts atslēgvārds, kas atgriež kādas funkcijas vērtību. Funkcijas izpilde netiek pārtraukta. Drīzāk tas atgriež vērtību zvanītājam un saglabā funkcijas izpildes stāvokli. Funkcijas izpilde tiek atsākta no pēdējā ienesīguma pārskata. Ienesīgums ļauj mums izveidot vērtību secību, nevis vienu vērtību. To izmanto funkciju korpusā. Funkcija, kas satur ienesīguma paziņojumu, ir pazīstama kā ģeneratora funkcija.







Atslēgvārdu iegūšanai ir vairākas priekšrocības. Piemēram, tas kontrolē atmiņas piešķiršanu un saglabā vietējā mainīgā stāvokli. Tomēr tas palielina koda sarežģītību.



Šajā rakstā ar piemēriem ir izskaidrota ienesīguma atslēgvārda izmantošana.



Ienesīguma sintakse

Ienesīguma sintakse ir vienkārša un saprotama. Ienesīgums tiek uzsākts, izmantojot ienesīguma atslēgvārdu un sintaksi šādi:





ražavērtību

Piemēri

Tagad aplūkosim piemērus, lai izprastu ienesīguma paziņojumu izmantošanu un darbību. Tradicionāli atgriešanās atslēgvārds pārtrauc programmas izpildi un beigās atgriež vērtību, bet ienesīgums atgriež vērtību secību. Tas nesaglabā vērtību atmiņā un atgriež vērtību zvanītājam izpildes laikā. Tālāk sniegtajā piemērā ģeneratora funkcija ir definēta, lai noteiktu lēciena gadu. Lēciens ir gads, kad dalāms ar četriem atgriež nulli kā atlikumu. Ienesīguma atslēgvārds zvanītājam atgriež lēciena gada vērtību. Tā kā tā iegūs lēciena gada vērtību, tā apturēs programmas izpildi, atdos vērtību un pēc tam atsāks izpildi no vietas, kur tā tika apturēta.

#deklarējot ģeneratoru, lai noteiktu lēciena gadu
defleapfunc(my_list):
priekšiiekšāmy_list:
ja(es%4==0):
#izmantojot ražu
ražai
#gadu deklarēšana
gads_saraksts=[2010. gads,2011. gads,2012. gads,2016. gads,2020,2024. gads]
drukāt('Lielā gada vērtību drukāšana')
priekšxiekšāleapfunc(gads_saraksts):
drukāt(x)

Izeja



Rezultāts parāda lēciena gadu sēriju.

Apskatīsim vēl vienu piemēru, kur ģeneratora funkcija dod dažādus skaitļus un virknes.

#ģeneratora funkcijas deklarēšana
defmyfunc():
raža 'Atzīmēt'
raža 'Džons'
raža 'Teilore'
raža 'Ivans'
raža 10
raža divdesmit
raža 30
raža 40
raža piecdesmit
#zvanīšana un atkārtošana, izmantojot ģeneratora funkciju
priekšiiekšāmyfunc():
#drukāt vērtības
drukāt(i)

Izeja

Ieviesīsim ģeneratora funkciju, lai aprēķinātu un izdrukātu skaitļu secības kuba vērtību. Mēs ģenerējam kuba vērtības no 1 līdz 30.

#deklarējot ģeneratora funkciju, lai aprēķinātu kuba vērtību
defkalkulators():
st=1
#bezgalīgā cikla cilpa
kamēr Taisnība:
#rēķinošs kubs
ražaval * val * val
#vērtības palielināšana par 1
st=val +1
drukāt('Kuba vērtības ir šādas:')
#zvanot ģeneratora funkcijai
priekšiiekšākalkulators():
jai>30:
pārtraukums
drukāt(i)

Izeja

Rezultātā kuba vērtība ir mazāka par 30.

Secinājums

Ienesīgums ir Python iebūvēts atslēgvārds, kas nepārtrauc programmas izpildi un nerada vērtību sēriju. Salīdzinot ar atgriešanās atslēgvārdu, ienesīguma atslēgvārds rada vairākas vērtības un atgriež zvanītājam. Šajā rakstā paskaidrots Python ienesīgums ar piemēriem.