Skip to content
GitHub

Functions (လုပ်ဆောင်ချက်များ)

Function ဆိုတာ Code တွေကို အစုလိုက် ဖွဲ့ထားတာပါ — “ဟင်းချက်နည်း (Recipe)” တစ်ခုနဲ့ တူပါတယ်။ ဟင်းချက်နည်း တစ်ကြိမ်ရေးထားရင် ကြိုက်တဲ့အချိန်တိုင်း အဲ့ဒီနည်းအတိုင်း ချက်လို့ ရသလိုပဲ — Function ကို တစ်ကြိမ် ဖန်တီးပြီးရင် လိုတဲ့အချိန်တိုင်း ခေါ်သုံးနိုင်ပါတယ်။

ဘာကြောင့် Functions သုံးမလဲ?DRY (Don’t Repeat Yourself) အတွက်ပါ။ Code တွေ ထပ်ခါထပ်ခါ မရေးဘဲ Function ထဲ ထည့်ပြီး လှမ်းခေါ်သုံးလိုက်တာ ဖြစ်ပါတယ်။

Python Function Diagram

Function ဘယ်လို တည်ဆောက်မလဲ?

Section titled “Function ဘယ်လို တည်ဆောက်မလဲ?”

Python မှာ Function ကို def (define) Keyword နဲ့ စပါတယ်:

def say_hello():
"""ရိုးရိုး Hello ပြောသော Function""" # ← Docstring
print("မင်္ဂလာပါ!")
print("Python Course မှ ကြိုဆိုပါတယ်")
# Function ကို ခေါ်သုံးခြင်း
say_hello()
say_hello() # ကြိုက်သလောက် ခေါ်သုံးနိုင်ပါတယ်

Docstrings — Function ကိုရှင်းပြတဲ့ မှတ်ချက်

Section titled “Docstrings — Function ကိုရှင်းပြတဲ့ မှတ်ချက်”

Function ထဲ ပထမဆုံး """...""" (Triple Quote) ကို Docstring လို့ ခေါ်ပါတယ်။ Function က ဘာလုပ်သလဲ ဆိုတာကို ရှင်းပြပေးတဲ့ Documentation ပါ:

def greet(name):
"""
Name ပေးလိုက်ရင် မင်္ဂလာပါ ပြောသော Function
Args:
name: ကြိုဆိုမည့် လူ၏ နာမည်
Returns:
ကြိုဆိုသော Message (String)
"""
return f"မင်္ဂလာပါ {name}!"

Function ထဲကို အပြင်ကနေ Data ထည့်ပေးလို့ ရပါတယ်:

def greet(name): # name ← Parameter (ကြေညာချိန်မှာ ခေါ်သည်)
print(f"မင်္ဂလာပါ {name}")
greet("Aung Aung") # "Aung Aung" ← Argument (ခေါ်ချိန်မှာ ထည့်ပေးသည်)
greet("Su Su")
def introduce(name, age, city):
print(f"ကျွန်တော် {name} ဖြစ်ပြီး {age} နှစ် ရှိပါတယ်")
print(f"နေထိုင်ရာ: {city}")
introduce("Aung", 20, "ရန်ကုန်")
introduce("Su", 22, "မန္တလေး")

Default Parameters (ပုံသေ တန်ဖိုးများ)

Section titled “Default Parameters (ပုံသေ တန်ဖိုးများ)”

Parameter ကို Default Value ပေးထားနိုင်ပါတယ် — Argument မထည့်ပေးရင် Default ကို သုံးသွားပါမယ်:

def order_coffee(type="ရိုးရိုး ကော်ဖီ", size="M"):
print(f"ခင်ဗျားရဲ့ {size} {type} ရပါပြီ")
order_coffee() # M ရိုးရိုး ကော်ဖီ
order_coffee("Latte") # M Latte
order_coffee("Mocha", "L") # L Mocha

Return — အဖြေ ပြန်ပေးခြင်း

Section titled “Return — အဖြေ ပြန်ပေးခြင်း”
def add_numbers(a, b):
result = a + b
return result # ← ပြန်ပေးလိုက်တယ်
total = add_numbers(5, 10) # ပြန်လာတဲ့ တန်ဖိုးကို Variable ထဲ ထည့်
print(total * 2) # 30

print နဲ့ return ကွာခြားချက်:

def bad_function(a, b):
print(a + b) # Screen မှာ ပြမယ် — ဒါပေမဲ့ ဆက်သုံးလို့မရဘူး
def good_function(a, b):
return a + b # တန်ဖိုး ပြန်ပေးမယ် — ဆက်သုံးလို့ရတယ်
result = bad_function(3, 4)
print(result) # None! (print() ဟာ None ပြန်ပေးတဲ့အတွက်)
result = good_function(3, 4)
print(result) # 7 ✅

Python မှာ Return Value ၂ ခုနဲ့ အထက် ပြန်ပေးနိုင်ပါတယ်:

def get_min_max(scores):
"""ကျောင်းသားတွေရဲ့ Score List ထဲက အငယ်ဆုံးနဲ့ အကြီးဆုံး ပြန်ပေးမယ်"""
return min(scores), max(scores)
class_scores = [72, 85, 60, 91, 78] # ကျောင်းသား ၅ ယောက် Score
lowest, highest = get_min_max(class_scores)
print(f"အနိမ့်ဆုံး Score: {lowest}") # 60
print(f"အမြင့်ဆုံး Score: {highest}") # 91

Lambda ဆိုတာ နာမည်မဲ့ Function ပါ။ တစ်ကြောင်းတည်းနဲ့ ရေးလို့ရပြီး Argument တစ်ခုနဲ့ Expression တစ်ခု Return ပေးပါတယ်:

# ပုံစံ: lambda parameters: expression
# ပုံမှန် Function
def square(x):
return x ** 2
# Lambda Function (တူညီပါတယ်)
square = lambda x: x ** 2
print(square(5)) # 25
# Lambda ကို sorted() မှာ key အနေနဲ့ သုံးခြင်း
students = [
{"name": "Kyaw", "score": 70},
{"name": "Aung", "score": 92},
]
ranked = sorted(students, key=lambda s: s["score"], reverse=True)

Python Variable Scope

Variable ကို ဘယ်နေရာမှာ ကြေညာသလဲ ဆိုတဲ့အပေါ် မူတည်ပြီး ဘယ်နေရာကနေ သုံးနိုင်သလဲ ဆိုတာ သတ်မှတ်ပါတယ်:

greeting = "မင်္ဂလာပါ" # Global Variable — နေရာတိုင်းကနေ သုံးနိုင်တယ်
def say_hello():
secret = "Function ထဲပဲ ရှိတယ်" # Local Variable
print(greeting) # ✅ Global ကို Function ထဲကနေ သုံးနိုင်တယ်
print(secret) # ✅ Local ကို ဒီ Function ထဲမှာ သုံးနိုင်တယ်
say_hello()
print(greeting) # ✅ Global ကို Function ပြင်ကနေ သုံးနိုင်တယ်
# print(secret) # ❌ NameError! Local ကို ပြင်ပကနေ မသုံးနိုင်ပါ

Function ပြင်ပကနေ Global Variable ကို ပြင်ချင်ရင်:

count = 0
def increment():
global count # ← global ဆိုတဲ့ Keyword မပါရင် Local ကိုပဲ ဆောက်သွားမယ်
count += 1
increment()
increment()
print(count) # 2

Function တည်ဆောက်ရာမှာ ဖြစ်တတ်တဲ့ အမှားများ

Section titled “Function တည်ဆောက်ရာမှာ ဖြစ်တတ်တဲ့ အမှားများ”
# ၁. self ကို မမေ့ပါနဲ့ — OOP မှာ Method ရေးရင် (Module 5 မှာ ဆက်သင်ပါမယ် — Class Methods တွေမှာ self ပါရပါမယ်)
# ၂. return ရှိမရှိ မသေချာရင် Function တန်ဖိုးကို print() နဲ့ စစ်ဆေးကြည့်ပါ
# ၃. Indentation မမှားပါနဲ့
def add(a, b):
result = a + b
# return result ← ဒါမပါရင် None ပြန်ပေးပါမယ်
return result