เมื่อเราใช้ฟังก์ชัน เรามักจะ เรียกใช้ฟังก์ชัน จากนั้นเนื้อหาของฟังก์ชันที่ถูกเรียกใช้จะถูกดำเนินการตามลำดับ อย่างไรก็ตาม บางครั้งเราต้องการมากกว่าแค่ขั้นตอนการดำเนินการ เรายังจำเป็นต้องได้รับตัวแปรบางตัวในฟังก์ชันด้วย เมื่อเราใช้ฟังก์ชัน เรายังสามารถเพิ่มค่าที่ส่งคืนเพื่อรับข้อมูลบางอย่างในฟังก์ชันได้
หากต้องการคืนค่าใน Python คุณต้องใช้คำสั่ง return โครงสร้างไวยากรณ์คือ:
ข้อมูลส่งคืน
ลองมาดูตัวอย่างเพื่อทำความเข้าใจค่าที่ส่งคืน หากเราต้องการใช้ฟังก์ชันเพื่อแก้ค่าของตัวแปร a และตัวแปร b แล้วเราต้องการส่งออกผลรวมของพวกมันในฟังก์ชันหลัก มาดูที่ รหัส:
defget_sum(a,b):sum=a+breturnsumget_sum(1,2)
หากเราเขียนฟังก์ชันในรูปแบบด้านบนแล้วส่งออกไป จะไม่มีผลลัพธ์เอาต์พุต เนื่องจากเราคืนค่าผลรวม ซึ่งเท่ากับค่าของส่วนนี้ของ get_sum(1,2) แต่ไม่ได้ดำเนินการ หากเราแก้ไข นี่คือโค้ด:
defget_sum(a,b):sum=a+bprint('ฟังก์ชันนี้ถูกเรียกว่า')returnsumprint('เสร็จสิ้นการถ่ายโอนค่าที่ส่งคืน')s=get_sum(1,2)พิมพ์
ผลลัพธ์คือ:
เรียกฟังก์ชันนี้ว่า 3
ใช้วิธีนี้เพื่อทำความเข้าใจ ในคำสั่ง s = get_sum(1,2) ฟังก์ชันจะถูกเรียกใช้ก่อน จากนั้นฟังก์ชันจะถูกดำเนินการตามลำดับ หลังจากคำสั่ง return ค่าของฟังก์ชันจะเท่ากับผลรวม จากนั้น คำสั่งถัดไปจะไม่ถูกดำเนินการอีกต่อไป หลังจากส่งคืนค่าแล้ว s ก็สามารถดำเนินการกำหนด กำหนดค่าที่ส่งคืนของฟังก์ชันให้กับ s แล้วส่งออกเพื่อดูผลลัพธ์เอาต์พุตของเรา
มาดูแผนผังกัน:
เมื่อเราใช้ฟังก์ชันเพื่อคืนค่า บางครั้งฟังก์ชันจะไม่เพียงส่งคืนค่าเดียวเท่านั้น แต่ยังอาจส่งคืนหลายค่าอีกด้วย มาดูวิธีการส่งคืนหลายค่ากัน
ที่จริงแล้วเมื่อเราคืนค่าหลายค่า หลักการจะคล้ายกับเมื่อเราคืนค่าค่าเดียว สิ่งหนึ่งที่เราต้องใส่ใจคือเมื่อเราคืนค่าหลายค่า ค่าหลายค่าจะถูกเก็บไว้ในสิ่งอันดับ
ลองดูตัวอย่างต่อไปนี้:
defget_data():a=1b=2c=3d=4returna,b,c,dprint('ประเภทค่าที่ส่งคืน:',type(get_data()))print('ค่าที่ส่งคืน:',get_data())
ผลลัพธ์ที่ได้:
ประเภทค่าส่งคืน: <class'tuple'>ค่าส่งคืน: (1,2,3,4)
เราจะเห็นว่าเมื่อมีการส่งคืนค่าหลายค่า ค่าเหล่านั้นจะถูกจัดเก็บไว้ในทูเพิลและจัดเก็บไว้ในทูเพิล มีหลายวิธีที่เราต้องการใช้ข้อมูลนี้
จากนั้นเราสามารถใช้ข้อมูลที่ส่งคืนข้างต้นได้โดยตรง เราสามารถใช้ตัวแปร 4 ตัวเพื่อกำหนดได้โดยตรง
i,o,k,l=get_data()พิมพ์(i,o,k,l)
ผลลัพธ์คือ:
1234
นอกจากนี้เรายังสามารถพิมพ์ค่าที่ส่งคืนเป็นวงได้:
foriinget_data():print('นี่คือ %d ข้อมูลที่ส่งคืน'%i)
ผลลัพธ์คือ:
นี่เป็นข้อมูลที่ส่งคืนครั้งที่ 1 นี่คือข้อมูลที่ส่งคืนครั้งที่ 2 นี่เป็นข้อมูลที่ส่งคืนครั้งที่ 3 นี่คือข้อมูลที่ส่งคืนครั้งที่ 4
นั่นคือทั้งหมดสำหรับค่าตอบแทน ค่าตอบแทนมีความสำคัญมากในโครงสร้างฟังก์ชัน ในส่วนนี้ เราจะใช้ตัวอย่างง่ายๆ เพื่อแนะนำค่าส่งคืนของฟังก์ชัน