Python တွင် Scope အလုပ်လုပ်ပုံ သိမှတ်ဖွယ်ရာများ
Local variable နှင့် global variable အလုပ်လုပ်ပုံ၏ အရေးကြီးသော သိမှတ်ဖွယ်ရာများကို စဉ်းစားကြည့်ပါ။
ကျွန်ုပ်တို့တွင် global variable တစ်ခုဖြစ်သော num ရှိသည်ဆိုပါစို့။
Global num ကို console တွင် ထုတ်ပြမည့် function func တစ်ခုကို ဖန်တီးကြပါစို့။
num = 1
def func():
print(num)
func() # 1 ကိုထုတ်ပြမည်
ယခု function print ၏ အောက်ပါလိုင်းတွင် local num ကို ကြေငြာကြပါစို့။
ကုဒ်အလုပ်လုပ်ပြီးနောက် console တွင် error တစ်ခု ပေါ်လာမည်။
ဤသို့ဖြစ်ရခြင်းမှာ Python သည် function အတွင်း၌ num ကို မကြေငြာရသေးသော local variable တစ်ခုအဖြစ်သာ သဘောထားသောကြောင့်ဖြစ်သည်။
num = 1
def func():
print(num) # error ကိုထုတ်ပြမည်
num = 2
ယခု function အတွင်းရှိ ကုဒ်ကို variable num ၏တန်ဖိုးကို 2 တိုးလာစေရန် ပြန်ရေးကြပါစို့။
num = 1
def func():
num += 2 # error ကိုထုတ်ပြမည်
အမှားဖြစ်ရခြင်းမှာ expression num += 2 သည် အောက်ပါစာသားကို ကိုယ်စားပြုသောကြောင့်ဖြစ်သည်။
num = num + 2
သို့သော် ကိန်းဂဏန်းပေါင်းထည့်ရမည့် local variable ကိုယ်၌က မကြေငြာရသေးပါ။ ထို့ကြောင့် မရှိသောတန်ဖိုးသို့ ကိန်းဂဏန်းပေါင်းထည့်၍မရသောကြောင့် Python က error ကို ထုတ်ပြနေခြင်းဖြစ်သည်။
အောက်ပါကုဒ်ကို run လိုက်လျှင် ရလဒ်မည်သို့ဖြစ်မည်နည်း။
tst = '12'
def func():
tst = 12
return tst
print(tst)
အောက်ပါကုဒ်ကို run လိုက်လျှင် ရလဒ်မည်သို့ဖြစ်မည်နည်း။
tst = 'abc'
def func():
tst = tst.upper()
return tst
func()
print(tst)
အောက်ပါကုဒ်ကို run လိုက်လျှင် ရလဒ်မည်သို့ဖြစ်မည်နည်း။
tst = 'abc'
def func():
txt = tst.upper()
return txt
print(func())
print(tst)