⊗pyPmFnNl 21 of 129 menu

Python တွင် nonlocal ညွှန်ကြားချက်

အပြင်ဘက် function ထဲမှာ ရှိတဲ့ variable တစ်ခုကို အတွင်းပိုင်း function ထဲက ဝင်ရောက်အသုံးပြုဖို့ လိုအပ်တဲ့ အခြေအနေတွေ ရှိပါတယ်။ function outer ထဲမှာ variable i ကို ကြေညာလိုက်ပါမယ်။ အတွင်းပိုင်း function နဲ့ ပတ်သက်ပြီးတော့ ဒီ variable ဟာ အပြင်ဘက် (global) ဖြစ်နေပါလိမ့်မယ် (global variable တွေဟာ အပြင်က code ထဲမှာပဲ ကြေညာထားတဲ့ variable တွေသာ ဖြစ်ပါတယ်)။ function inner ကို i ထဲကို တစ်ခု ပေါင်းထည့်ခိုင်းလိုက်မယ်။

def outer(): i = 0 def inner(): i += 1 # မှားယွင်းမှုကို ဖော်ပြလိမ့်မည်။ inner() return i

သို့သော် function inner အတွက် variable i ဟာ local variable တစ်ခုဖြစ်နေတာကြောင့် Python က ဒါကို ကြေညာထားခြင်းမရှိဘူးလို့ ယူဆပြီး သက်ဆိုင်ရာ မှားယွင်းချက်ကို ဖော်ပြပါလိမ့်မယ်။ အရင်တုန်းက ဒီလိုမျိုး မှားယွင်းချက်ကို global ညွှန်ကြားချက်နဲ့ ပြင်ဆင်ခဲ့ကြပါတယ်။ သို့သော် ဒီမှာ i ဟာ အပြင်ဘက် variable ဖြစ်နေတာကြောင့် nonlocal ညွှန်ကြားချက်ကို အသုံးပြုသင့်ပါတယ်။ ဒီညွှန်ကြားချက်က ဖော်ပြထားတဲ့ variable အမည်တွေကို global scope မှလွဲ၍ အနီးဆုံး scope ထဲက ယူပါတယ်။ ဆိုလိုတာက function inner အတွင်းမှာရှိတဲ့ i ကို အထက်က function မှာ ကြေညာထားတဲ့ variable ကနေ ယူပါလိမ့်မယ်။

def outer(): i = 0 def inner(): nonlocal i i += 1 inner() return i print(outer()) # 1 ကို ဖော်ပြပါလိမ့်မယ်။

အောက်ပါ code ထဲမှာ programmer တစ်ယောက်က မှားယွင်းမှုတစ်ခု လုပ်မိပါတယ်။

num = 10 def outer(): num = 5 def inner(): num -= 2 inner() return num print(outer())

ဒီ code မှာ ဘာမှားနေလဲ? code ရေးသားသူရဲ့ မှားယွင်းချက်ကို ရှာဖွေပြီး ပြင်ဆင်ပေးပါ။

အောက်ပါ code ထဲမှာ programmer တစ်ယောက်က မှားယွင်းမှုတစ်ခု လုပ်မိပါတယ်။

num = 3 def outer(): num += 1 tst = num def inner(): tst = tst ** 3 inner() return tst print(outer())

ဒီ code မှာ ဘာမှားနေလဲ? code ရေးသားသူရဲ့ မှားယွင်းချက်ကို ရှာဖွေပြီး ပြင်ဆင်ပေးပါ။

မြန်မာ
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 များကို အသုံးပြုပါသည်။ ဒေတာများကို ပြုပြင်ခြင်းသည် ကိုယ်ရေးကိုယ်တာ မူဝါဒအတိုင်း ဖြစ်ပါသည်။
အားလုံးလက်ခံရန် ပြင်ဆင်ရန် ငြင်းပယ်ရန်