Function ใน Python สามารถ Return ได้มากกว่าหนึ่ง Object จริงๆหรือ?
Function ใน Python สามารถ Return ได้มากกว่าหนึ่ง Object จริงๆหรือ?
หลายๆคนคงจะตอบว่า “จริง” ทำได้ แต่คำตอบคือ “ไม่จริง ไม่สามารถทำได้” ! ถ้าใครตอบว่าได้ ถือเป็นความผิดร้ายแรงอย่างหนึ่ง!!
แล้วปกติที่เขียนโค้ดแบบนี้หละ มาลองประกาศ Function ง่ายๆกัน
def test_function(value1, value2):
value1 += 1
value2 += 1
return value1, value2
จากนั้นมาทดสอบฟังก์ชั่นกันเลย
result1, result2 = test_function(1, 2)
print(result1)
print(result2)
จะได้ผลลัพท์ดังนี้
2
3
อ้าวแล้วที่บอกว่า ไม่จริงที่ Python สามารถ Return ได้มากกว่าหนึ่ง Object หละ มาดูตรงนี้กันก่อน ในความเป็นจริง การประกาศตัวแปรประเภท Tuple ใน Python ไม่จำเป็นต้องมีวงเล็บ ตรงนี้หลายคนอาจจะยังไม่ทราบ
เรามาลองเล่นกันดูดีกว่า หากลองพิมพ์ โค้ดตามด้านล่าง จะเห็นผลลัพท์ ว่าประเภทของตัวแปร x คือ Tuple ไม่ติด Error ด้วย
x = 1,2,3,4,5
print(type(x))
จะได้ผลลัพท์ดังนี้
<class ‘tuple’>
ตอนเราใช้คำสั่ง return value1, value2 ความจริงแล้วเรากำลังสร้าง Object ใหม่ขึ้นมาโดยไม่รู้ตัว Object นั้นคือ Tuple ที่มีสมาชิกคือ value1 และ value2 ดังนั้นจริงๆแล้ว Function Return ได้แค่ Object เดียวเท่านั้น ในกรณีนี้คือ Tuple
ถึงตรงนี้แล้วก็มาทดสอบกัน เรียกใช้ฟังก์ชั่นด้านบนอีกครั้ง แล้วเช็ค ประเภทของ Object
print(type(test_return(1, 2)))
จะได้ผลลัพท์ดังนี้
<class ‘tuple’>
เห็นไหมเป็น Tuple จริงๆด้วย
หลายคนอาจจะยังสงสัยอีก แล้วที่เราเขียนโค้ดแบบนี้หละ
result1, result2 = test_return(1, 2)
อันนี้ที่จริงเรียกว่าการ Unpack Tuple โดยที่เราสามารถนำตัวแปรเท่ากับจำนวนสมาชิกของTuple นั้นๆ มารับ ค่าสมาชิกได้ เช่น
a, b = (1, 2)
print(a)
print(b)
จะได้ผลลัพท์ดังนี้
1
2
เอาหละก็จบ บทความกันตรงนี้
หวังว่าทุกคนจะเข้าใจ Python กันมากขึ้นๆ ขอให้ Python จงเจริญ!!