Следите за новинками
в нашем Telegram канале. Жми, чтобы подписаться:)
⊗pyPmFnFIF 20 of 129 menu
◀ ▶

Python တွင် အတွင်းထဲ့ထားသော ဖန်ရှင်များ

Python တွင် ဖန်ရှင်တစ်ခုအတွင်းမှာ အခြားဖန်ရှင်များကို ကြေငြာနိုင်ပါသည်။ အပြင်ဖန်ရှင် outer ရှိပြီး ၎င်းအတွင်းမှာ ဖန်ရှင် inner ရှိနိုင်သည်ဟု ဆိုကြပါစို့:

def outer(): def inner(): pass

အထက်ဖော်ပြပါ ဥပမာသည် လုံလောက်စွာ ရိုးရှင်းပုံရပါသည်။ သို့သော် မကြာခဏဆိုသလို ဖန်ရှင် outer ၏ body တွင် inner ကလွဲ၍ အခြား လုပ်ဆောင်ချက်များလည်း ရှိနေတတ်ပါသည်။ ကုဒ်ကို ရိုးရှင်းအောင်ပြုလုပ်ရန် inner ကို အပြင်ကုဒ်ဘလောက်သို့ ထုတ်နိုင်သော်လည်း၊ ဤဖန်ရှင်ကို တစ်ကြိမ်တည်းနှင့် ဖန်ရှင် outer အတွင်းတွင်သာ အသုံးပြုမည် ဖြစ်သည်။ ထို့ကြောင့် ၎င်းကို အပြင်သို့ထုတ်ရန် အဓိပ္ပာယ်မရှိပါ။

ဥပမာတစ်ခုကို ကြည့်ကြပါစို့၊ ဖန်ရှင် outer ထံသို့ စာရင်းတစ်ခုပို့ပေးသည်။ ဖန်ရှင် inner ကို အသုံးပြု၍ စာရင်းရှိ ကိန်းဂဏန်းအစိတ်အပိုင်းများကို စတုရန်းအထိ တင်ပေးမည်။ ဤအတွက် ဖန်ရှင် inner ပြီးနောက် ဗလာ စာရင်း res ကို ကြေငြာပါ၊ ထိုစာရင်းထဲတွင် စတုရန်းတင်ထားသော အစိတ်အပိုင်းများကို ကွင်းဆက်ထဲတွင် စုဆောင်းမည်:

def outer(lst): def inner(num): return num ** 2 res = [] for el in lst: res.append(inner(el)) return res

ဖန်ရှင် outer ကို ခေါ်ကြည့်ကြပါစို့၊ ၎င်းထံသို့ စာရင်းပါရာမီတာပေးပြီး ရလဒ်ကို console တွင် ထုတ်ပြကြည့်ကြမည်:

print(outer([2, 3, 5])) # ထွက်ရှိမည့်ရလဒ် [4, 9, 25]

ပြင်ပနှင့် အတွင်းဖန်ရှင်များကို ရေးပါ၊ သူတို့ပူးပေါင်းအလုပ်လုပ်ခြင်းဖြင့် စာရင်းရှိ string အစိတ်အပိုင်းတစ်ခုစီကို အက္ခရာအကြီးဖြင့် ထုတ်ပေးမည်။

ဖန်ရှင်များကို ပေးထားသည်:

def func1(num): if num > 0: num += 2 return num def func2(iter): res = [] for el in iter: res.append(func1(el)) return res

func1 သည် func2 ၏ အတွင်းဖန်ရှင်ဖြစ်အောင် ကုဒ်ကို ပြန်ရေးပါ။

← →
↑
မြန်မာ▼
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
ဝက်ဘ်ဆိုက် လုပ်ဆောင်ခြင်း၊ ဆန်းစစ်လေ့လာခြင်းနှင့် ပုဂ္ဂလိကပြုပြင်ခြင်းအတွက် ကျွန်ုပ်တို့သည် cookie များကို အသုံးပြုပါသည်။ ဒေတာများကို ပြုပြင်ခြင်းသည် ကိုယ်ရေးကိုယ်တာ မူဝါဒအတိုင်း ဖြစ်ပါသည်။
အားလုံးလက်ခံရန် ပြင်ဆင်ရန် ငြင်းပယ်ရန်