Yukot sa Python

Python Yield



Ang Yield ay isang built-in na keyword ng Python na nagbabalik ng (mga) halaga mula sa isang pagpapaandar. Ang pagpapatupad ng pagpapaandar ay hindi winakasan. Sa halip, ibinalik nito ang halaga sa tumatawag at pinapanatili ang pagpapatupad ng estado ng pagpapaandar. Ang pagpapatupad ng pagpapaandar ay ipinagpatuloy mula sa huling pahayag ng ani. Pinapayagan kami ng ani na makabuo ng isang pagkakasunud-sunod ng mga halaga sa halip na isang halaga. Ginagamit ito sa loob ng isang function na katawan. Ang pagpapaandar na naglalaman ng isang pahayag ng ani ay kilala bilang pagpapaandar ng generator.







Mayroong maraming mga pakinabang upang makabuo ng keyword. Halimbawa, kinokontrol nito ang paglalaan ng memorya at nai-save ang lokal na variable na estado. Gayunpaman, pinapataas nito ang pagiging kumplikado ng code.



Ipinapaliwanag ng artikulong ito ang paggamit ng ani ng keyword na may mga halimbawa.



Syntax ng Yield

Ang syntax ng ani ay simple at prangka. Ang ani ay pinasimulan ng keyword ng ani at syntax tulad ng sumusunod:





anihalaga

Mga halimbawa

Ngayon, tingnan natin ang mga halimbawa upang maunawaan ang paggamit at mga gawa ng mga pahayag ng ani. Ayon sa kaugalian, tinatapos ng bumalik na keyword ang pagpapatupad ng programa at ibalik ang isang halaga sa huli, habang ang ani ay nagbabalik ng pagkakasunud-sunod ng mga halaga. Hindi nito itatabi ang halaga sa memorya at ibabalik ang halaga sa tumatawag sa oras ng pagtakbo. Sa ibinigay na halimbawa sa ibaba, ang isang pagpapaandar ng generator ay tinukoy upang matukoy ang taon ng pagtalon. Ang isang pagtalon ay ang taong iyon kapag nahahati sa apat na nagbabalik ng zero bilang isang natitira. Ibinabalik ng keyword ng ani ang halaga ng leap year sa tumatawag. Dahil makukuha nito ang halaga ng leap year, ihihinto nito ang pagpapatupad ng programa, ibalik ang halaga, at pagkatapos ay ipagpatuloy ang pagpapatupad mula sa kung saan ito tumigil.

# pagdedeklara ng isang generator upang matukoy ang leap year
defleapfunc(aking listahan):
para saakosaaking listahan:
kung(i%4==0):
#using ani
aniako
#deklara ang listahan ng mga taon
year_list=[2010,2011,2012,2016,2020,2024]
mag-print('Pagpi-print ng mga halaga ng leap year')
para saxsaleapfunc(year_list):
mag-print(x)

Paglabas



Ipinapakita ng output ang serye ng mga taon ng paglukso.

Tingnan natin ang isa pang halimbawa kung saan ang pag-andar ng generator ay magbubunga ng iba't ibang mga numero at mga string.

#deklara ang isang pagpapaandar ng generator
defmyfunc():
ani 'Marka'
ani 'John'
ani 'Taylor'
ani 'Ivan'
ani 10
ani dalawampu
ani 30
ani 40
ani limampu
# pagtawag at pag-ulit sa pamamagitan ng pagpapaandar ng generator
para saakosamyfunc():
# halaga ng pag-print
mag-print(ako)

Paglabas

Ipatupad natin ang isang pagpapaandar ng generator upang makalkula at mai-print ang cube na halaga ng pagkakasunud-sunod ng mga numero. Bumubuo kami ng mga halaga ng cube mula 1 hanggang 30.

#declaring isang pagpapaandar ng generator upang makalkula ang halaga ng kubo
defkometube():
oras=1
#ang walang hanggan habang loop
habang Totoo:
#calcumating cube
anival * val * val
#pagkakaloob ng halaga ng 1
oras=val +1
mag-print('Ang mga halaga ng kubo ay:')
# pagtawag sa pagpapaandar ng generator
para saakosakometube():
kungako>30:
pahinga
mag-print(ako)

Paglabas

Ipinapakita ng output ang halaga ng kubo na mas mababa sa 30.

Konklusyon

Ang Yield ay isang built-in na keyword ng Python na hindi winawakasan ang pagpapatupad ng programa at bumuo ng isang serye ng mga halaga. Sa paghahambing sa bumalik na keyword, ang keyword ng ani ay gumagawa ng maraming mga halaga at bumalik sa tumatawag. Ipinapaliwanag ng artikulong ito ang Python Yield na may mga halimbawa.