ฟังก์ชันใน Python สามารถแบ่งได้เป็นสองประเภทหลักตามลักษณะการทำงาน คือ ฟังก์ชันที่ไม่มีการส่งค่าคืนกลับ (Void Function) และ ฟังก์ชันที่มีการส่งค่าคืนกลับ (Return Function)
ฟังก์ชันประเภทนี้จะทำงานตามคำสั่งที่กำหนด แต่จะไม่ส่งค่าผลลัพธ์กลับไปยังผู้เรียกใช้งาน เมื่อฟังก์ชันทำงานเสร็จสิ้นแล้ว โปรแกรมจะไม่เก็บค่าผลลัพธ์ใด ๆ ไว้ เหมาะสำหรับงานที่ต้องการเพียงการดำเนินการบางอย่าง เช่น การแสดงผลข้อความ หรือการบันทึกข้อมูลลงไฟล์ โดยไม่จำเป็นต้องนำค่าที่ได้กลับมาใช้งานต่อ
💻 ตัวอย่าง ฟังก์ชันที่ไม่มีการส่งค่าคืนกลับ (Void Function)
บรรทัดที่ 1
ประกาศตัวแปร Global ชื่อ x และกำหนดค่าเป็น 5
บรรทัดที่ 3
ประกาศฟังก์ชัน print_double() ที่ไม่มีพารามิเตอร์ โดยไม่มีการรับค่าจากผู้ใช้
บรรทัดที่ 4
ภายในฟังก์ชัน print_double(), มีการประกาศตัวแปร Local ชื่อ x ที่มีค่า 2 ซึ่งมีขอบเขตการใช้งานเฉพาะภายในฟังก์ชันนี้
บรรทัดที่ 5
แสดงค่าของตัวแปร Local x ผ่านคำสั่ง print(),
ซึ่งจะแสดงข้อความ "ค่าภายในฟังก์ชัน (Local): 2"
บรรทัดที่ 7
เรียกใช้ฟังก์ชัน print_double()
บรรทัดที่ 8
แสดงค่าของตัวแปร Global x ผ่านคำสั่ง print(), ซึ่งจะทำให้แสดงข้อความ "ค่าภายนอกฟังก์ชัน (Global): 5", โดยค่าของตัวแปร Global ไม่ได้รับผลกระทบจากการประกาศตัวแปร Local ในฟังก์ชัน print_double()
ข้อดี
เหมาะสำหรับงานที่ไม่ต้องการการคำนวณหรือการประมวลผลข้อมูลเพื่อส่งคืนผลลัพธ์
ช่วยลดความซับซ้อนในกรณีที่ไม่จำเป็นต้องใช้ผลลัพธ์ในโปรแกรมส่วนอื่น ๆ
ข้อเสีย
ไม่สามารถนำค่าที่เกิดขึ้นจากการทำงานของฟังก์ชันไปใช้งานต่อได้
ไม่เหมาะกับงานที่ต้องการคำนวณหรือส่งค่าผลลัพธ์คืนมาให้ฟังก์ชันอื่นใช้งาน
ฟังก์ชันประเภทนี้จะทำงานตามคำสั่งที่กำหนด และเมื่อทำงานเสร็จสิ้น จะมีการส่งค่าผลลัพธ์กลับไปยังผู้เรียกใช้งานผ่านคำสั่ง return ค่าที่ส่งกลับสามารถนำไปใช้งานต่อในโปรแกรม ไม่ว่าจะเป็นการเก็บค่าลงในตัวแปร หรือการนำไปใช้ในการคำนวณและเงื่อนไขต่าง ๆ
💻 ตัวอย่าง ฟังก์ชันที่มีการส่งค่าคืนกลับ (Return Function)
บรรทัดที่ 1
ประกาศตัวแปร Global ชื่อ x และกำหนดค่าเป็น 10
บรรทัดที่ 3
ประกาศฟังก์ชัน calculate_square(n) ที่รับพารามิเตอร์ n ฟังก์ชันนี้จะทำการคำนวณค่ากำลังสองของ n
บรรทัดที่ 4
ประกาศตัวแปร Local ชื่อ square และคำนวณค่าของ n ยกกำลัง 2 (เช่น 10210^2102) และเก็บผลลัพธ์ในตัวแปร square
บรรทัดที่ 5
ใช้คำสั่ง return เพื่อส่งค่าผลลัพธ์ที่เก็บในตัวแปร square กลับไปยังผู้เรียกใช้งานฟังก์ชัน
บรรทัดที่ 7
เรียกใช้ฟังก์ชัน calculate_square() โดยส่งค่าของตัวแปร Global x (10) เป็นพารามิเตอร์ n และเก็บค่าผลลัพธ์ที่ส่งกลับในตัวแปร result
บรรทัดที่ 8
แสดงผลลัพธ์การคำนวณว่า "ค่ากำลังสองของ 10 คือ: 100" ซึ่ง result มีค่าเป็น 100 จากการคำนวณในฟังก์ชัน
บรรทัดที่ 9
แสดงค่าของตัวแปร Global x, ซึ่งยังคงมีค่าเป็น 10 แม้ว่าฟังก์ชันจะถูกเรียกใช้แล้ว
ข้อดี - ข้อเสียของฟังก์ชันที่มีการส่งค่าคืนกลับ
ข้อดี
ช่วยให้สามารถเก็บค่าผลลัพธ์ที่ได้จากการประมวลผลของฟังก์ชัน และนำไปใช้งาน
ต่อในโปรแกรมได้
มีความยืดหยุ่นในการใช้งาน เนื่องจากสามารถนำผลลัพธ์ไปใช้ในฟังก์ชันหรือส่วนอื่น ๆ ของโปรแกรมได้
เหมาะสำหรับงานที่ต้องการคำนวณหรือตรวจสอบข้อมูล และส่งผลลัพธ์กลับมายังโปรแกรมส่วนอื่น
ข้อเสีย
ฟังก์ชันที่ซับซ้อนเกินไปอาจทำให้เกิดความยากในการติดตามการทำงาน
ในกรณีที่ไม่จำเป็นต้องใช้ค่าผลลัพธ์ อาจทำให้โปรแกรมซับซ้อนโดยไม่จำเป็น