เบื่อไหมครับที่ต้องก๊อปปี้โค้ดเดิมๆ ไปวางหลายๆ ที่ในโปรเจกต์? วันนี้เราจะมาทำความรู้จักกับ Function (ฟังก์ชัน) เครื่องมือที่จะช่วยให้โค้ดของคุณสะอาด เป็นระเบียบ และทำงานได้เหมือนมือโปรตามหลักการ DRY (Don't Repeat Yourself) ครับ
Function คืออะไร?
ถ้าเปรียบเทียบกับการทำอาหาร Function ก็คือ "สูตรอาหาร" ครับ เราเขียนขั้นตอนการทำไว้ครั้งเดียว เมื่อไหร่ที่หิว (ต้องการใช้งาน) เราก็แค่เรียกชื่อเมนูนั้นมาทำ โดยไม่จำเป็นต้องเขียนขั้นตอนการสับหมูหรือล้างผักใหม่ทุกครั้ง
1. โครงสร้างและการสร้าง Function
ใน Python เราจะใช้คีย์เวิร์ด def (ย่อมาจาก Define) ตามด้วยชื่อฟังก์ชันและเครื่องหมายวงเล็บครับ
# การสร้างฟังก์ชัน
def welcome_msg():
print("ยินดีต้อนรับเข้าสู่ระบบ devhub.in.th")
# การเรียกใช้งาน
welcome_msg()
การรับค่าเข้า (Parameters & Arguments)
ฟังก์ชันจะเก่งขึ้นมากถ้าเรารับค่ามาประมวลผลได้ครับ
- Parameter: คือชื่อตัวแปรที่เรากำหนดไว้ในวงเล็บตอนสร้างฟังก์ชัน
- Argument: คือค่าจริงๆ ที่เราส่งเข้าไปตอนเรียกใช้
| คำศัพท์ | หน้าที่ | ตัวอย่าง |
|---|---|---|
| Parameter | ตัวแปรรับค่า (วางไว้ที่ชื่อฟังก์ชัน) | def add(x, y): |
| Argument | ค่าที่ส่งไปให้ฟังก์ชันทำงาน | add(10, 20) |
2. การส่งค่ากลับด้วย Return
ฟังก์ชันส่วนใหญ่ไม่ได้มีหน้าที่แค่แสดงผล (print) แต่ต้อง "ส่งค่า" กลับมาให้เราเอาไปคำนวณต่อครับ เราจะใช้คำสั่ง return
def calculate_area(width, height):
area = width * height
return area
# นำค่าที่ได้มาเก็บไว้ในตัวแปร
my_room = calculate_area(5, 4)
print(f"พื้นที่ห้องขนาด: {my_room} ตร.ม.")
3. ขอบเขตตัวแปร (Local vs Global Scope)
เรื่องนี้สำคัญมากครับ! ตัวแปรที่สร้าง "ข้างใน" ฟังก์ชันจะเรียกว่า Local Variable ซึ่งคนข้างนอกจะมองไม่เห็นและเรียกใช้ไม่ได้
Blockquote: "จำไว้ว่า... อะไรที่เกิดขึ้นในฟังก์ชัน ก็จะจบลงในฟังก์ชัน (ยกเว้นเราจะ return มันออกมา!)"
Workshop: ระบบคำนวณเกรดแบบฟังก์ชัน
def check_grade(score):
if score >= 80:
return "A"
elif score >= 50:
return "Pass"
else:
return "Fail"
# เรียกใช้งานซ้ำๆ ได้ง่ายๆ
print(check_grade(85)) # Output: A
print(check_grade(45)) # Output: Fail