ฟังก์ชั่น (Function) ในภาษา Python

ฟังก์ชั่น (Function) ในภาษา Python เป็นบล็อกโปรแกรมที่มีชื่อ ซึ่งใช้สำหรับกระบวนการที่ถูกกำหนดไว้ล่วงหน้า และสามารถเรียกใช้งานได้หลายครั้งในส่วนของโปรแกรมอื่น ๆ หรือที่อยู่ในเดียวกัน ฟังก์ชั่นมีรูปแบบดังนี้

def function_name(arguments):
    # code to be executed
    return value

 

โดยตัวอย่างด้านบนจะมีส่วนประกอบดังนี้

  • def เป็น keyword ที่ใช้ประกาศฟังก์ชั่นใน Python
  • function_name เป็นชื่อฟังก์ชั่นที่เราต้องการประกาศ
  • arguments เป็นอาร์กิวเมนต์หรือพารามิเตอร์ที่ใช้สำหรับรับค่าเข้ามาในฟังก์ชั่น และสามารถกำหนดได้หลายตัว โดยใช้เครื่องหมาย , เช่น (arg1, arg2, arg3)
  • ส่วนของโค้ดที่ต้องการให้ฟังก์ชั่นทำงานจะอยู่ในบล็อกด้านใน function_name
  • return เป็นคำสั่งที่ใช้สำหรับส่งค่าผลลัพธ์กลับมาจากฟังก์ชั่น โดยอาจจะไม่มีหรือมีได้หลายค่า

โดยฟังก์ชั่นในภาษา Python ถูกออกแบบให้เป็นฟังก์ชั่นตัวแปร (First-Class Functions) ซึ่งหมายความว่าฟังก์ชั่นจะถูกประกาศเป็นตัวแปร เช่นเดียวกับตัวแปรปกติ และสามารถนำไปใช้เป็นอาร์กิวเมนต์ของฟังก์ชั่นอื่น ๆ ได้

ใน Python การสร้างฟังก์ชัน (Function) ทำได้ด้วยคำสำคัญ def ตามด้วยชื่อฟังก์ชัน และคร่อมกับวงเล็บ ( ) ภายในวงเล็บสามารถระบุตัวแปร (argument) ที่ต้องการส่งให้กับฟังก์ชันได้ หลังจากนั้นจะต้องมีเครื่องหมาย : และบรรทัดต่อมาจะเป็นส่วนของโค้ดที่อยู่ภายในฟังก์ชัน โดยการส่งค่าออกจากฟังก์ชันใช้คำสำคัญ return

 

ตัวอย่าง การสร้างฟังก์ชัน greeting โดยรับชื่อผู้ใช้เป็น input argument และ return คำทักทาย "Hello, {name}!" โดยใช้ f-string ในการรวมข้อความ

def greeting(name):
    return f"Hello, {name}!"

 

การเรียกใช้ฟังก์ชัน greeting สามารถทำได้ดังนี้

message = greeting("John")
print(message)  # output: "Hello, John!"

 

ฟังก์ชันสามารถมีการระบุ default value ให้กับ input argument โดยการกำหนดค่าเริ่มต้นให้กับ input argument ในการประกาศฟังก์ชัน โค้ดตัวอย่างเพื่อสร้างฟังก์ชัน greeting โดยรับชื่อผู้ใช้เป็น input argument แต่ถ้าไม่ระบุชื่อจะใช้ชื่อ "World" ในการทักทาย

def greeting(name="World"):
    return f"Hello, {name}!"

การเรียกใช้ฟังก์ชัน greeting โดยไม่ระบุชื่อผู้ใช้จะได้ผลลัพธ์เป็น "Hello, World!"

message = greeting()
print(message)  # output: "Hello, World!"

แต่ถ้าระบุชื่อผู้ใช้ เช่น greeting("John") ผลลัพธ์จะเป็น `”Hello, John!”

Hello, John!