# การใช้งาน return กับ yield ในภาษา Python แบบง่ายๆ ภายในเส้นทางการเรียนรู้ที่ EPT
การเขียนโปรแกรมไม่ใช่แค่การสร้างโค้ดที่ทำงานได้ แต่เป็นเรื่องของการเลือกใช้เครื่องมือที่เหมาะสมในแต่ละสถานการณ์ เพื่อให้โค้ดที่เขียนนั้นมีประสิทธิภาพและ อ่านง่ายสำหรับนักพัฒนาคนอื่นๆ ในบทความนี้ เราจะพูดถึงการใช้งาน `return` กับ `yield` ในภาษา Python ว่าแตกต่างกันอย่างไร มี usecase อย่างไรบ้างในโลกจริง และจะให้ตัวอย่างโค้ดที่น่าสนใจสามตัวอย่าง
ในภาษา Python, `return` และ `yield` มีบทบาทในการส่งค่าข้อมูลกลับไปยังผู้เรียกใช้ แต่มีลักษณะการทำงานที่ต่างกันอย่างสิ้นเชิง
`return` ใช้สำหรับการส่งค่ากลับจากฟังก์ชัน ทันทีที่ Python พบคำสั่ง return, ฟังก์ชันจะสิ้นสุดลงทันทีและค่าจะถูกส่งกลับไป
ในทางกลับกัน, `yield` ใช้ใน generator ซึ่งเป็นฟังก์ชันที่สามารถสร้างลำดับของค่าอย่างต่อเนื่อง ทุกครั้งที่ generator ถูกเรียกใช้, มันจะกลับมาทำงานต่อจากจุดที่มันหยุดการทำงานครั้งล่าสุด
return
: ใช้สำหรับฟังก์ชันที่ต้องการคำนวณและส่งค่าถูกต้องกลับมาทีเดียว, ตัวอย่างเช่น ฟังก์ชันที่คำนวณค่าเฉลี่ยของข้อมูลyield
: ใช้เมื่อต้องการประมวลผลชุดข้อมูลขนาดใหญ่ที่ไม่ต้องการให้สำเร็จในคราวเดียว, เช่น การอ่านไฟล์ขนาดใหญ่โดยไม่จำเป็นต้องโหลดเข้าสู่หน่วยความจำทั้งหมดในครั้งเดียวตอนนี้ มาดูตัวอย่างโค้ดที่ใช้ `return` และ `yield` กัน
สร้างฟังก์ชันสำหรับหาผลรวมของตัวเลขในรายการ:
โค้ดนี้สร้างฟังก์ชัน `sum_of_list` ที่ใช้ `return` ในการส่งค่าผลรวมกลับไป
สร้าง generator สำหรับสร้างตัวเลขในช่วงที่กำหนด:
ตัวอย่างนี้ใช้ `yield` เพื่อสร้างลำดับตัวเลขจาก 1 ถึง 5 เมื่อเราวนลูปเข้าถึง generator, มันจะส่งค่ากลับออกมาหนึ่งตัวที่ละตัว
การใช้งาน `yield` สามารถนำไปใช้ในการเขียนโปรแกรมที่มีประสิทธิภาพ เช่นในการจัดการกับปริมาณข้อความที่มากในการประมวลผลแบบสตรีมมิ่ง หรือ ในการประมวลผลชุดข้อมูลบิ๊กเดต้าที่ไม่สามารถจัดการได้ทั้งหมดในครั้งเดียว เนื่องจากเราไม่จำเป็นต้องโหลดทั้งหมดเข้าหน่วยความจำ
เข้าร่วมการเรียนรู้ที่ EPT และสำรวจโลกแห่งการเขียนโค้ดผ่านภาษา Python ไปกับเรา คุณจะได้เข้าใจว่าเครื่องมือที่เราเลือกใช้นั้นมีความสำคัญอย่างไร ในการเขียนโปรแกรมที่มีประสิทธิภาพและสร้างสรรค์ เพราะที่ EPT คุณจะได้ก้าวเป็นผู้เชี่ยวชาญโปรแกรมมิ่งยุคใหม่พร้อมรับมือกับทุกความท้าทายได้อย่างมั่นใจ!
หมายเหตุ: ข้อมูลในบทความนี้อาจจะผิด โปรดตรวจสอบความถูกต้องของบทความอีกครั้งหนึ่ง บทความนี้ไม่สามารถนำไปใช้อ้างอิงใด ๆ ได้ ทาง EPT ไม่ขอยืนยันความถูกต้อง และไม่ขอรับผิดชอบต่อความเสียหายใดที่เกิดจากบทความชุดนี้ทั้งทางทรัพย์สิน ร่างกาย หรือจิตใจของผู้อ่านและผู้เกี่ยวข้อง
หากมีข้อผิดพลาด/ต้องการพูดคุยเพิ่มเติมเกี่ยวกับบทความนี้ กรุณาแจ้งที่ http://m.me/Expert.Programming.Tutor
085-350-7540 (DTAC)
084-88-00-255 (AIS)
026-111-618
หรือทาง EMAIL: NTPRINTF@GMAIL.COM