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 numeroaking 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 numeroaking 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.