လွယ်လွယ်ပြောရရင် function ဆိုတာ code အပိုင်းတစ်ခုကို နာမည်တပ်ပြီး သိမ်းထားတာ။ အဲဒီ နာမည်ကို ခေါ်လိုက်တိုင်း သိမ်းထားတဲ့ code တွေ အလုပ်လုပ်တယ်။ တစ်ခါရေး၊ အကြိမ်ကြိမ် သုံး။
ဥပမာ ဟင်းချက်နည်းစာရွက်ကို စဉ်းစားကြည့်ပါ။ “ကြက်ဥကြော်” ဆိုတဲ့ စာရွက်မှာ အဆင့် ၅ ဆင့် ရေးထားတယ် — ဒယ်အိုးတင်၊ ဆီထည့်၊ ကြက်ဥဖောက်၊ ဆားထည့်၊ ကြော်။ နောက်တစ်ခါ ကြက်ဥကြော် ချက်ချင်ရင် အဆင့် ၅ ဆင့် ပြန်မစဉ်းစားဘူး — “ကြက်ဥကြော်” ဆိုတဲ့ စာရွက်ကို ထုတ်ကြည့်ရုံပဲ။
Function လည်း ဒီအတိုင်းပါပဲ။ အလုပ်တစ်ခုကို တစ်ခါ ရေးထားပြီး နာမည်ပေးထားတယ် — လိုတိုင်း နာမည်ခေါ်ရုံပဲ။
Python မှာ ဒီလိုရေးတယ်။
def greet(name):
print("မင်္ဂလာပါ၊ " + name + "!")
def ဆိုတာ “ဒါ function အသစ်” လို့ ကြေညာတာ။ greet က နာမည်။ name က parameter — function ကို ခေါ်တဲ့အခါ ထည့်ပေးရမဲ့ အရာ။
greet("Aung") # မင်္ဂလာပါ၊ Aung!
greet("Su") # မင်္ဂလာပါ၊ Su!
greet("Min") # မင်္ဂလာပါ၊ Min!
print("မင်္ဂလာပါ၊ " + name + "!") ဆိုတဲ့ စာကြောင်းကို ၃ ခါ ပြန်မရေးရဘူး — greet(...) လို့ တစ်ကြောင်းတည်း ခေါ်ရုံပဲ။ လူ ၁၀၀ ကို နှုတ်ဆက်ချင်ရင် စာကြောင်း ၁၀၀ မရေးရတော့ဘူး။
Parameter နဲ့ Return
Function ကို ခေါ်တဲ့အခါ ထည့်ပေးတာ argument၊ function ဘက်က လက်ခံတာ parameter — အခေါ်သာ ကွဲတာ၊ အတူတူပဲ။
ပြီးတော့ function က အဖြေလည်း ပြန်ပေးလို့ရတယ် — return နဲ့။
def add(a, b):
return a + b
result = add(3, 5) # result ထဲမှာ 8 ရောက်မယ်
print(result) # 8
print က screen ပေါ် ပြတာ၊ return က တန်ဖိုးကို ပြန်ပေးတာ — နှစ်ခု မတူဘူး။ အရင်က variable အကြောင်း ရေးတုန်းက ဗူးနဲ့ ဥပမာပေးဖူးတယ် — return က function က ဗူးထဲ ပစ္စည်းထည့်ပေးလိုက်သလိုမျိုး၊ print က ပစ္စည်းကို ထုတ်ပြလိုက်သလိုမျိုး။
ဘာလို့ သုံးရတာလဲ?
ထပ်မရေးရ — အမှားပြင်ချင်ရင် တစ်နေရာတည်း ပြင်ရုံပဲ။ နေရာ ၁၀ ခုမှာ ကူးရေးထားရင် ၁၀ ခုလုံး လိုက်ပြင်ရမယ်။
ဖတ်ရလွယ် — calculate_total() လို့ တွေ့တာနဲ့ “အော်၊ စုစုပေါင်း တွက်တာပဲ” လို့ သိတယ်။ code အရှည် ၂၀ ကြောင်းကို လိုက်ဖတ်စရာ မလိုဘူး။
စမ်းရလွယ် — function တစ်ခုချင်းစီကို သီးသန့် စမ်းလို့ရတယ်။
စတင်သူတွေ သတိထားစရာ
နာမည်ကို အဓိပ္ပာယ်ရှိရှိ ပေး — f1, my_func ထက် calculate_total, send_email က ပိုရှင်းတယ်။
function တစ်ခုက အလုပ်တစ်မျိုးပဲ လုပ် — ဟင်းချက်ရင်း အဝတ်ပါ လျှော်တဲ့ စာရွက်မျိုး မဖြစ်စေနဲ့။
အရမ်း အကြာကြီး မရေးနဲ့ — စာကြောင်း ၂၀ ကျော်လာရင် နှစ်ပိုင်း ခွဲဖို့ စဉ်းစားပါ။
ကိုယ့် code မှာ တူညီတဲ့ အပိုင်းတွေ ၂ ခါထက် ပိုတွေ့ရင် အဲဒါ function ထုတ်ဖို့ အချိန်ရောက်ပြီ။ “နှစ်ခါ ရေးမိရင် function ထုတ်” — ဒီ စည်းမျဉ်းလေး မှတ်ထားပါ။ နောက်တစ်ခါ code ရေးတဲ့အခါ ကိုယ့်ဟာကိုယ် မေးကြည့်လိုက် — “ဒီအပိုင်း ထပ်သုံးဦးမလား?” လို့။ သုံးဦးမယ်ဆိုရင် function လုပ်ထားလိုက် — နောင်တမရစေရဘူး။ 😉