Yield ng Python kumpara sa Pagbabalik

Python Yield Vs Return



Ang Python ay ang malawakang ginagamit na wikang pangkalahatang-layunin sa pagprograma ng mga nagdaang beses. Ang ani ay isang built-in na keyword na Python na ginagamit upang likhain ang mga pagpapaandar ng generator. Ang pag-andar nito ay bumubuo ng isang serye ng mga resulta. Hihinto nito ang pagpapatupad ng programa, ibinalik ang halaga ng resulta sa tumatawag, at ipagpatuloy ang pagpapatupad mula sa huling ani. Bukod doon, ang pagpapaandar ng ani ay nagpapadala ng nabuong serye ng mga resulta sa anyo ng isang object ng generator. Sa kabilang banda, ang pagbabalik ay isang built-in na keyword din sa Python na tinatapos ang pagpapaandar at ibabalik ang halaga sa tumatawag.

Binabalangkas ng artikulong ito ang mga pagkakaiba sa pagitan ng ani at pagbalik na may mga halimbawa.







Mga Pagkakaiba sa pagitan ng Yield at Return

Upang magsimula sa, maraming mga kilalang pagkakaiba sa pagitan ng ani at pagbabalik. Talakayin muna natin kung ano ang mga ito.



Bumalik ka Magbunga
Ang pahayag sa pagbabalik ay nagbabalik lamang ng isang solong halaga sa tumatawag. Maaaring ibalik ng pahayag ng ani ang isang serye ng mga resulta sa tumatawag sa anyo ng isang object ng generator.
Lumabas ang pagbalik sa pagpapaandar, at sa kaso ng isang loop, tinatanggal nito ang loop. Ito ang huling pahayag na mailagay sa loob ng pagpapaandar. Hindi nito tinanggal ang mga lokal na variable ng function. Sinuspinde nito ang pagpapatupad at ibabalik ang halaga sa tumatawag, at ipagpatuloy ang pagpapatupad ng programa mula sa huling pahayag ng ani.
Lohikal, ang isang pagpapaandar ay dapat magkaroon lamang ng isang pahayag sa pagbabalik. Maaaring may higit sa isang pahayag ng ani sa loob ng pagpapaandar.
Ang pagbalik ng pahayag ay maaari lamang tumakbo nang isang beses. Ang pahayag ng ani ay maaaring tumakbo nang maraming beses.
Ang pahayag sa pagbabalik ay inilalagay sa loob ng isang regular na pagpapaandar ng Python. Ang pahayag ng ani ay nagko-convert ng isang regular na pag-andar sa isang function ng generator.

Halimbawa1: Return vs. Yield

Ngayon, tingnan natin ang pagkakaiba sa pagitan ng mga pahayag sa pagbabalik at ani sa pamamagitan ng mga halimbawa. Sa halimbawang programa na ibinigay sa ibaba, gumamit kami ng maraming mga pahayag sa pagbabalik. Maaari mong obserbahan na ang pagpapatupad ng programa ay magwawakas pagkatapos ng unang pahayag sa pagbabalik, at ang natitirang code ay hindi naisakatuparan.



# isang programa upang maipakita ang pagtatrabaho ng pahayag sa pagbabalik

#nagtatakda ng variable ng numero

num1=10

#nagtatakda ng variable ng numero

num2=dalawampu

#nilikha ng isang pagpapaandar upang maisagawa ang mga pagpapatakbo ng arithmetic

def matematika():

# kinakalkula ang halaga ng kabuuan

bumalik kanum1+num2

# kinakalkula ang pagkakaiba

bumalik kanum1-num2

# kinakalkula ang halaga ng pagpaparami

bumalik kanum1*num2

# kinakalkula ang halaga ng paghahati

bumalik kanum1/num2

# pagtawag sa pagpapaandar

mag-print(matematika())

Paglabas





Sa output, makikita na ibabalik lamang ng pagpapaandar ang unang halaga, at ang programa ay winakasan.



Upang maisagawa ang isang katulad na gawain na may maraming mga pahayag sa pagbabalik, kailangan naming lumikha ng apat na magkakaibang mga pag-andar para sa bawat uri ng operasyon ng arithmetic.

# isang programa upang maipakita ang pagtatrabaho ng pahayag sa pagbabalik

#nagtatakda ng variable ng numero

num1=10

#nagtatakda ng variable ng numero

num2=dalawampu

#nilikha ng isang pagpapaandar upang maisagawa ang mga pagpapatakbo ng arithmetic

def sumOP():

# kinakalkula ang halaga ng kabuuan

bumalik kanum1+num2

ibawas ang defOP():

# kinakalkula ang pagkakaiba

bumalik kanum1-num2

def pagpaparamiOP():

# kinakalkula ang halaga ng pagpaparami

bumalik kanum1*num2

dibisyon ng defOP():

# kinakalkula ang halaga ng paghahati

bumalik kanum1/num2

# pagtawag sa kabuuan ng pagpapaandar

mag-print('Ang halaga ng kabuuan ay:',sumOP())

# pagtawag sa pagpapaandar na pagbabawas

mag-print('Ang halaga ng pagkakaiba ay:',ibawas OP())

# pagtawag sa pagpapaandar ng pagpaparami

mag-print('Ang halaga ng pagpaparami ay:',pagpaparamiOP())

# pagtawag sa pagpapaandar ng dibisyon

mag-print('Ang halaga ng paghahati ay:',dibisyonOP())

Paglabas

Maaari naming maisagawa ang maramihang mga pagpapatakbo ng arithmetic sa loob ng isang solong pag-andar ng generator na may maraming mga pahayag ng ani.

# isang programa upang ipakita ang pagtatrabaho ng pahayag ng ani

#nagtatakda ng variable ng numero

num1=10

#nagtatakda ng variable ng numero

num2=dalawampu

#nilikha ng isang pagpapaandar upang maisagawa ang mga pagpapatakbo ng arithmetic

def matematika():

# kinakalkula ang halaga ng kabuuan

aninum1+num2

# kinakalkula ang pagkakaiba

aninum1-num2

# kinakalkula ang halaga ng pagpaparami

aninum1*num2

# kinakalkula ang halaga ng paghahati

aninum1/num2

# pagtawag sa pagpapaandar

mag-print('Pagpi-print ng mga halaga:')

# ginagamit para sa loop upang mai-access ang mga halaga mula sa object ng generator

para saako sa matematikaOP():

mag-print(ako)

Paglabas

Halimbawa2: Return vs. Yield

Tingnan natin ang isa pang halimbawa ng mga pahayag sa pagbabalik at ani. Sa ibinigay na halimbawa, mayroon kaming isang listahan ng mga numero na ipinapasa sa mod () na paggana bilang isang argument. Ginagawa namin ang pagpapatakbo ng modulus sa bawat bilang ng listahan at sinusuri kung ano ang mga numerong iyon kapag nahahati sa 10 return zero bilang isang natitirang halaga.

Una, ipatupad natin ang halimbawang ito sa aming script sa Python na may pahayag sa pagbabalik.

#nagtatakda ng isang listahan ng mga numero

aking listahan=[10,dalawampu,25,30,35,40,limampu]

#nagtatakda ng isang pagpapaandar upang maisagawa ang pagpapatakbo ng modulus

def mod(aking listahan):

para saako sa myList:

#pagganap ng pagpapatakbo ng modulus

kung(ako%10==0):

bumalik kaako

mag-print(laban(aking listahan))

Paglabas

Ang pagbabalik ng pahayag ay ibabalik lamang ang unang numero sa tumatawag at winawakasan ang pagpapatupad ng pagpapaandar.

Ngayon, ipatupad natin ang parehong halimbawa sa aming script sa Python na may pahayag na ani.

#nagtatakda ng isang listahan ng mga numero

aking listahan=[10,dalawampu,25,30,35,40,limampu]

#nagtatakda ng isang pagpapaandar upang maisagawa ang pagpapatakbo ng modulus

def mod(aking listahan):

para saako sa myList:

#pagganap ng pagpapatakbo ng modulus

kung(ako%10==0):

#ang pahayag sa ani

aniako

para saako sa mod(aking listahan):

mag-print(ako)

Paglabas

Konklusyon

Bilang konklusyon, ang pagbabalik at ani ay dalawang built-in na keyword ng Python o pahayag. Ang pahayag ng pagbabalik ay ginagamit upang ibalik ang halaga sa tumatawag mula sa isang pagpapaandar at tinatapos ang pagpapatupad ng programa, habang ang pahayag ng ani ay gumagawa ng isang object ng generator at maibabalik ang maraming halaga sa tumatawag nang hindi winawala ang pagpapatupad ng programa. Inililista ng artikulong ito ang lahat ng mga kilalang pagkakaiba sa pagitan ng mga pahayag sa pagbabalik at ani na may mga halimbawa.