ပြင်နည်း- syntaxerror- positional argument သည် keyword argument ကို လိုက်နာသည်။


Python တွင် သင်ကြုံတွေ့ရသော အမှားတစ်ခုမှာ-

 SyntaxError : positional argument follows keyword argument

သော့ချက်စာလုံးအငြင်းအခုံ ကိုအသုံးပြုပြီးနောက် function တစ်ခုတွင် positional argument ကို အသုံးပြုသောအခါ ဤအမှားသည် ဖြစ်ပေါ်လာပါသည်။

ဤသည်မှာ ၎င်းတို့နှစ်ခုကြား ခြားနားချက်ဖြစ်သည်-

Positional arguments များ သည် ၎င်းတို့ ၏ ရှေ့ တွင် “သော့ စကားလုံး” မပါရှိ ကြ ပေ။

  • ဥပမာ- my_function(2၊ 2)

သော့ချက်စကားလုံးအငြင်းအခုံ များသည် ၎င်းတို့ရှေ့တွင် “သော့ချက်စကားလုံး” ရှိသည်။

  • ဥပမာ- my_function(a=2၊ b=2)

သော့ချက်စာလုံးအငြင်းအခုံတစ်ခုပြီးနောက် positional argument ကိုအသုံးပြုပါက Python သည် error တစ်ခုအား ထုတ်ပစ်မည်ဖြစ်သည်။

  • ဥပမာ- my_function(a=2၊ 2)

အောက်ဖော်ပြပါ ဥပမာတွင် ဤအမှားသည် လက်တွေ့တွင် မည်သို့ဖြစ်ပွားနိုင်သည်ကို ပြသသည်။

ဥပမာ- positional argument သည် keyword argument ၏ နောက်တွင် ရှိနေသည်။

Python တွင် အောက်ပါ function သည် တန်ဖိုးနှစ်ခုကို မြှောက်ပြီး သုံးပုံတစ်ပုံဖြင့် ပိုင်းမည်ဆိုပါစို့။

 def do_stuff (a,b):
return a*b/c

အောက်ပါနမူနာများသည် ဤလုပ်ဆောင်ချက်ကို အသုံးပြုရန် အကျုံးဝင်ပြီး မမှန်ကန်သော နည်းလမ်းများကို ပြသသည်-

အကျုံးဝင်သောနည်းလမ်း နံပါတ် 1- အနေအထားဆိုင်ရာ အကြောင်းပြချက်များအားလုံး

အောက်ဖော်ပြပါကုဒ်သည် ကျွန်ုပ်တို့၏လုပ်ဆောင်ချက်ကို တည်နေရာဆိုင်ရာ အကြောင်းပြချက်များအားလုံးဖြင့် မည်သို့အသုံးပြုရမည်ကို ပြသသည်-

 do_stuff ( 4,10,5 )

8.0

လုပ်ဆောင်ချက်အငြင်းအခုံတစ်ခုစီအတွက် Python သည် အသုံးပြုရမည့်တန်ဖိုးများကို အတိအကျသိသောကြောင့် အမှားအယွင်းများကို ထုတ်ပေးခြင်းမရှိပါ။

မှန်ကန်သောနည်းလမ်း #2- သော့ချက်စကားလုံးအငြင်းပွားမှုအားလုံး

အောက်ဖော်ပြပါ ကုဒ်သည် ကျွန်ုပ်တို့၏ လုပ်ဆောင်ချက်ကို သော့ချက်စကားလုံး အငြင်းအခုံများအားလုံးဖြင့် မည်သို့အသုံးပြုရမည်ကို ပြသသည်-

 do_stuff(a= 4 , b= 10 , c= 5 )

8.0

နောက်တဖန်၊ Python သည် function argument တစ်ခုစီအတွက် အသုံးပြုရမည့်တန်ဖိုးများကို အတိအကျသိသောကြောင့် အမှားအယွင်းများမပြုလုပ်ရပါ။

မှန်ကန်သောနည်းလမ်း #3- သော့ချက်စကားလုံးအငြင်းပွားမှုများမတိုင်မီ အနေအထားဆိုင်ရာ အကြောင်းပြချက်များ

အောက်ဖော်ပြပါ ကုဒ်သည် သော့ချက်စကားလုံး အကြောင်းပြချက်များ မတိုင်မီ အသုံးပြုသည့် နေရာဆိုင်ရာ အငြင်းအခုံများဖြင့် ကျွန်ုပ်တို့၏ လုပ်ဆောင်ချက်ကို မည်သို့ အသုံးပြုရမည်ကို ပြသသည်-

 do_stuff( 4 ,b= 10 ,c= 5 )

8.0

တန်ဘိုး 4 ကို အငြင်းအခုံ တစ်ခုတွင် သတ်မှတ်ပေးသင့်သည်ဟု Python မှသိသောကြောင့် Error မရှိပါ။

မမှန်ကန်သောနည်းလမ်း- သော့ချက်စကားလုံးအငြင်းပွားမှုများပြီးနောက် နေရာဆိုင်ရာ အကြောင်းပြချက်များ

အောက်ဖော်ပြပါ ကုဒ်သည် သော့ချက်စကားလုံး အငြင်းအခုံများ ပြီးနောက် အသုံးပြုသည့် နေရာဆိုင်ရာ အငြင်းအခုံများဖြင့် လုပ်ဆောင်ချက်ကို မည်သို့အသုံးပြုရန် ကြိုးပမ်းနိုင်သည်ကို ပြသသည်-

 do_stuff(a= 4 , 10 , 5 )

SyntaxError : positional argument follows keyword argument

သော့ချက်စကားလုံးအငြင်းပွားမှုများပြီးနောက် တည်နေရာဆိုင်ရာ အကြောင်းပြချက်များကို အသုံးပြုထားသောကြောင့် အမှားအယွင်းဖြစ်သွားသည်။

အတိအကျအားဖြင့်၊ Python သည် တန်ဖိုးများ 10 နှင့် 5 ကို arguments b သို့မဟုတ် c တွင် သတ်မှတ်သင့်သည်ဆိုသည်ကို မသိသောကြောင့် ၎င်းသည် လုပ်ဆောင်ချက်ကို လုပ်ဆောင်၍မရပါ။

ထပ်လောင်းအရင်းအမြစ်များ

အောက်ဖော်ပြပါ သင်ခန်းစာများသည် Python ရှိ အခြားသော ဘုံအမှားများကို မည်သို့ပြုပြင်ရမည်ကို ရှင်းပြသည်-

Pandas တွင် KeyError ကိုဘယ်လိုပြင်မလဲ။
ပြင်ဆင်နည်း- ValueError- float NaN ကို int သို့ ပြောင်းလဲ၍မရပါ။
ပြုပြင်နည်း- တန်ဖိုးအမှား- Operands များကို ပုံသဏ္ဍာန်များဖြင့် ထုတ်လွှင့်၍မရပါ။

မှတ်ချက်တစ်ခုထည့်ပါ။

သင့် email လိပ်စာကို ဖော်ပြမည် မဟုတ်ပါ။ လိုအပ်သော ကွက်လပ်များကို * ဖြင့်မှတ်သားထားသည်