Ienesīgums ir Python iebūvēts atslēgvārds, kas atgriež funkcijas vērtību (-as). Funkcijas izpilde netiek pārtraukta. Drīzāk tas atdod zvanītājam vērtību un saglabā funkcijas izpildes stāvokli. Funkcijas izpilde tiek atsākta no pēdējā ienesīguma paziņojuma. Ienesīgums ļauj mums izveidot vērtību secību, nevis vienu vērtību. To lieto funkcijas korpusā. Funkcija, kas satur ienesīguma paziņojumu, ir pazīstama kā ģeneratora funkcija.
Atslēgvārdam ir vairākas priekšrocības. Piemēram, tas kontrolē atmiņas piešķiršanu un saglabā lokālā mainīgā stāvokli. Tomēr tas palielina koda sarežģītību.
Šajā rakstā ienesīguma atslēgvārda izmantošana ir izskaidrota ar piemēriem.
Ienesīguma sintakse
Ienesīguma sintakse ir vienkārša un vienkārša. Ienesīgumu sāk ar ienesīguma atslēgvārdu un sintaksi šādi:
ienesīguma vērtībaPiemēri
Tagad aplūkosim piemērus, lai izprastu ienesīguma pārskatu izmantošanu un darbus. 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. Vērtība netiek saglabāta atmiņā un tā tiek atgriezta zvanītājam izpildes laikā. Šajā zemāk sniegtajā piemērā ir definēta ģeneratora funkcija, lai noteiktu lēciena gadu. Lēciens ir tas gads, kad dalāms ar četriem atgriež nulli kā atlikušo daļu. Ienesīguma atslēgvārds zvanītājam atgriež lēciena gadu vērtību. Kad tas iegūs lēciena gadu vērtību, tas apturēs programmas izpildi, atgriezīs vērtību un pēc tam atsāks izpildi no vietas, kur tā tika apturēta.
#deklarēt ģeneratoru, lai noteiktu lēciena gadudef leapfunc (my_list):
priekš i manā sarakstā:
ja (i% 4 == 0):
#izmantojot ražu
ienesīgums i
#deklarēt gadu sarakstu
year_list = [2010,2011,2012,2016,2020,2024]
drukāt ("Pārlēkšanas gada vērtību izdrukāšana")
x vērtībai leapfunc (year_list):
drukāt (x)
Rezultāts
Rezultāts parāda lēcienu gadu sēriju.
Apskatīsim vēl vienu piemēru, kur ģeneratora funkcija dod dažādus skaitļus un virknes.
#deklarēt ģeneratora funkcijudef myfunc ():
raža "Mark"
raža "Jānis"
raža "Taylor"
raža "Ivans"
raža 10
raža 20
raža 30
raža 40
raža 50
# zvans un atkārtojums, izmantojot ģeneratora funkciju
priekš i manā failā ():
#drukāšanas vērtības
drukāt (i)
Rezultāts
Īstenosim ģeneratora funkciju, lai aprēķinātu un izdrukātu skaitļu secības kuba vērtību. Mēs ģenerējam kubu vērtības no 1 līdz 30.
#deklarējot ģeneratora funkciju, lai aprēķinātu kuba vērtībudef calcube ():
val = 1
# bezgalīgais, kamēr cilpa
kamēr patiess:
#rēķinošais kubs
raža val * val * val
#censing vērtību par 1
val = val + 1
drukāt ("Kubu vērtības ir:")
# zvans ģeneratora funkcijai
i i kalkulā ():
ja i> 30:
pārtraukums
drukāt (i)
Rezultāts
Rezultātā kuba vērtība ir mazāka par 30.
Secinājums
Ienesīgums ir Python iebūvēts atslēgvārds, kas nebeidz programmas izpildi un ģenerē vērtību virkni. Salīdzinājumā ar atgriešanās atslēgvārdu ienesīguma atslēgvārds rada vairākas vērtības un atgriežas zvanītājam. Šajā rakstā ar piemēriem izskaidrota Python raža.