Python လုပ်ဆောင်ချက် အဓိပ္ပါယ်ဖွင့်ဆိုချက်တွင် မူရင်းအငြင်းအခုံတစ်ခုကို သတ်မှတ်ခြင်းသည် လုပ်ဆောင်ချက်ခေါ်ဆိုမှုတစ်ခုအတွင်း အကြောင်းပြချက်ကို ချန်လှပ်ထားလျှင် မူရင်းတန်ဖိုးကို အသုံးပြုရစေပါသည်။
အောက်ပါအသေးစိတ်အချက်အလက်များကို အောက်တွင်ဖော်ပြထားပါသည်။
- ပုံသေ အငြင်းအခုံများကို သတ်မှတ်ခြင်း။
- မူရင်းအငြင်းအခုံများ၏ အနေအထားအပေါ် ကန့်သတ်ချက်များ
- စာရင်း သို့မဟုတ် အဘိဓာန်ကို မူရင်းတန်ဖိုးအဖြစ် အသုံးပြုသည့်အခါ သတိပြုပါ။
ပုံသေ အငြင်းအခုံများကို သတ်မှတ်ခြင်း။
အငြင်းအခုံအမည် = လုပ်ဆောင်ချက် အဓိပ္ပါယ်ဖွင့်ဆိုချက်ရှိ မူရင်းတန်ဖိုးဖြစ်ပါက သက်ဆိုင်ရာ အကြောင်းပြချက်ကို ချန်လှပ်ထားသည့်အခါ မူရင်းတန်ဖိုးကို အသုံးပြုပါမည်။
def func_default(arg1, arg2='default_x', arg3='default_y'): print(arg1) print(arg2) print(arg3) func_default('a') # a # default_x # default_y func_default('a', 'b') # a # b # default_y func_default('a', arg3='c') # a # default_x # c
မူရင်းအငြင်းအခုံများ၏ အနေအထားအပေါ် ကန့်သတ်ချက်များ
လုပ်ဆောင်ချက်တစ်ခုကို သတ်မှတ်သည့်အခါ ပုံမှန်အငြင်းအခုံတစ်ခု (ပုံသေတန်ဖိုးမသတ်မှတ်ထားသည့် အငြင်းအခုံတစ်ခု) မတိုင်မီ ပုံသေအငြင်းအခုံတစ်ခုကို ထားရှိခြင်းသည် အမှားအယွင်းတစ်ခုဖြစ်လာသည်။SyntaxError
# def func_default_error(arg2='default_a', arg3='default_b', arg1): # print(arg1) # print(arg2) # SyntaxError: non-default argument follows default argument
စာရင်း သို့မဟုတ် အဘိဓာန်ကို မူရင်းတန်ဖိုးအဖြစ် အသုံးပြုသည့်အခါ သတိပြုပါ။
စာရင်းတစ်ခု သို့မဟုတ် အဘိဓာန်ကဲ့သို့သော အပ်ဒိတ်လုပ်နိုင်သော (မပြောင်းနိုင်သော) အရာတစ်ခုကို ပုံသေတန်ဖိုးအဖြစ် သတ်မှတ်ပါက၊ လုပ်ဆောင်ချက်ကို သတ်မှတ်သည့်အခါ ၎င်းအရာအား ဖန်တီးမည်ဖြစ်သည်။ ထို့နောက် သက်ဆိုင်ရာ argument မပါဘဲ function ကိုခေါ်သောအခါ တူညီသော object ကိုအသုံးပြုသည်။
လုပ်ဆောင်ချက် အဓိပ္ပါယ်ဖွင့်ဆိုချက်ကို လုပ်ဆောင်သည့်အခါ မူရင်းအငြင်းအခုံတန်ဖိုးများကို ဘယ်မှညာသို့ အကဲဖြတ်ပါသည်။ ဆိုလိုသည်မှာ လုပ်ဆောင်ချက်ကို သတ်မှတ်သောအခါတွင် တစ်ကြိမ်သာ ပုံသေအငြင်းအခုံ စကားရပ်ကို အကဲဖြတ်ပြီး ခေါ်ဆိုမှုတစ်ခုစီအတွက် တူညီသော “ တွက်ချက်ထားသော” တန်ဖိုးကို အသုံးပြုပါသည်။
8.7. Function definitions — Python 3.10.2 Documentation
ထို့ကြောင့် ဥပမာအားဖြင့်၊ စာရင်းတစ်ခု သို့မဟုတ် အဘိဓာန်တစ်ခုကို ၎င်း၏မူလအငြင်းပွားမှုအဖြစ် ယူဆောင်ကာ ၎င်းသို့ဒြပ်စင်များပေါင်းထည့်ကာ ယင်းအငြင်းအခုံမရှိဘဲ အကြိမ်များစွာခေါ်ပါက၊ ဒြပ်စင်များကို တူညီသည့်အရာဝတ္တုတွင် ထပ်ခါထပ်ခါ ပေါင်းထည့်မည်ဖြစ်သည်။
စာရင်းတစ်ခုအတွက်ဥပမာ။
def func_default_list(l=[0, 1, 2], v=3): l.append(v) print(l) func_default_list([0, 0, 0], 100) # [0, 0, 0, 100] func_default_list() # [0, 1, 2, 3] func_default_list() # [0, 1, 2, 3, 3] func_default_list() # [0, 1, 2, 3, 3, 3]
အဘိဓာန်အတွက် ဥပမာ။
def func_default_dict(d={'default': 0}, k='new', v=100): d[k] = v print(d) func_default_dict() # {'default': 0, 'new': 100} func_default_dict(k='new2', v=200) # {'default': 0, 'new': 100, 'new2': 200}
လုပ်ဆောင်ချက်ကို ခေါ်တိုင်း အရာဝတ္ထုအသစ်တစ်ခုကို ဖန်တီးသည်။
def func_default_list_none(l=None, v=3): if l is None: l = [0, 1, 2] l.append(v) print(l) func_default_list_none() # [0, 1, 2, 3] func_default_list_none() # [0, 1, 2, 3]