Skip to content

บทที่ 3.1: พื้นฐานฟังก์ชันและการจัดการอาร์กิวเมนต์ (Functions Basics)

เอกสารนี้อธิบายเกี่ยวกับการประกาศฟังก์ชัน (Function Definition) การส่งค่าพารามิเตอร์ (Parameters) การคืนค่าด้วย return คำสั่ง pass และการส่งฟังก์ชันเป็นอาร์กิวเมนต์


1. การประกาศและการเรียกใช้งานฟังก์ชัน (Defining & Calling Functions)

ฟังก์ชันคือชุดคำสั่งย่อยที่ถูกจัดกลุ่มไว้ด้วยกันเพื่อให้สามารถนำกลับมาเรียกใช้งานซ้ำได้ โดยใช้คีย์เวิร์ด def

1.1 โครงสร้างพื้นฐาน

# การประกาศฟังก์ชัน
def greet_user(name):
    """Docstring: ฟังก์ชันสำหรับทักทายผู้ใช้งาน"""
    print(f"สวัสดี, {name}!")

# การเรียกใช้งานฟังก์ชัน (Function Call)
greet_user("Alex")  # Output: สวัสดี, Alex!

1.2 การคืนค่าจากฟังก์ชัน (return)

ฟังก์ชันสามารถส่งค่าผลลัพธ์กลับไปยังจุดที่เรียกใช้งานได้ด้วยคำสั่ง return (หากไม่มีคำสั่ง return ฟังก์ชันจะคืนค่าเป็น None โดยอัตโนมัติ)

def calculate_rectangle_area(width, height):
    area = width * height
    return area

# รับค่าผลลัพธ์เก็บไว้ในตัวแปร
result = calculate_rectangle_area(5, 10)
print(f"พื้นที่สี่เหลี่ยม: {result}")  # Output: พื้นที่สี่เหลี่ยม: 50

2. ประเภทของพารามิเตอร์ (Function Parameters)

2.1 Positional Arguments (พารามิเตอร์ตามตำแหน่ง)

การส่งค่าตามลำดับของพารามิเตอร์ที่กำหนดไว้ในฟังก์ชัน

def describe_pet(animal_type, pet_name):
    print(f"ฉันมี {animal_type} ชื่อว่า {pet_name}")

# ส่งค่าตามตำแหน่ง
describe_pet("สุนัข", "โจ๊กเกอร์")

2.2 Keyword Arguments (พารามิเตอร์แบบระบุชื่อ)

การระบุชื่อพารามิเตอร์ตอนส่งค่า ทำให้ไม่ต้องกังวลเรื่องลำดับ

# ระบุชื่อพารามิเตอร์สลับตำแหน่งได้
describe_pet(pet_name="ลูซี่", animal_type="แมว")

2.3 Default Arguments (พารามิเตอร์ค่าเริ่มต้น)

การกำหนดค่าเริ่มต้นให้กับพารามิเตอร์ กรณีที่ผู้เรียกใช้งานไม่ได้ส่งค่าเข้ามา

def register_user(username, role="guest"):
    print(f"ผู้ใช้: {username} | สิทธิ์: {role}")

register_user("alex123")             # ใช้ค่า default -> ผู้ใช้: alex123 | สิทธิ์: guest
register_user("admin_boss", "admin") # เปลี่ยนค่า -> ผู้ใช้: admin_boss | สิทธิ์: admin

3. การคืนค่าหลายค่า (Returning Multiple Values)

Python อนุญาตให้ฟังก์ชันคืนค่าหลายค่าพร้อมกันได้ในรูปแบบของ Tuple

def get_min_max(numbers):
    return min(numbers), max(numbers)

# รับค่าแบบ Multiple Assignment
lowest, highest = get_min_max([10, 5, 20, 8, 15])
print(f"ต่ำสุด: {lowest}, สูงสุด: {highest}")  # Output: ต่ำสุด: 5, สูงสุด: 20

4. คำสั่ง pass สำหรับฟังก์ชันโครงร่าง

หากต้องการสร้างโครงร่างฟังก์ชันไว้ก่อนแต่ยังไม่อยากเขียนโค้ดภายใน ให้ใช้คำสั่ง pass เพื่อป้องกันข้อผิดพลาดทางไวยากรณ์ (IndentationError)

def pending_feature():
    pass  # ยังไม่ประมวลผลอะไร ปล่อยผ่านไปก่อน