Computer >> คอมพิวเตอร์ >  >> การเขียนโปรแกรม >> Python

ทำไม Python ไม่สามารถกำหนด tuples ในฟังก์ชันได้?


ตั้งแต่ Python 3.0 เป็นต้นไป จึงเป็นไปไม่ได้ที่จะกำหนด tuple ที่คลายแพ็กเป็นพารามิเตอร์ในฟังก์ชัน (PEP 3113) หมายความว่าหากคุณพยายามกำหนดฟังก์ชันดังต่อไปนี้ −

def fn(a,(b,c)):
   pass


ตัวแปล Python แสดงข้อผิดพลาดทางไวยากรณ์ที่วงเล็บแรกของ tuple ให้กำหนดวัตถุทูเพิลเป็นพารามิเตอร์และแกะภายในฟังก์ชันแทน ในโค้ดต่อไปนี้ ออบเจ็กต์ทูเพิลสองตัวที่แทนพิกัด x และ y ของจุดสองจุดจะถูกส่งผ่านเป็นพารามิเตอร์เพื่อคำนวณระยะห่างระหว่างจุดทั้งสอง ก่อนทำการคำนวณ ออบเจ็กต์ทูเพิลจะถูกแยกออกในพิกัด x และ y ตามลำดับ

def hypot(p1,p2):
   x1,y1=p1
   x2,y2=p2
   import math
   hyp=math.sqrt((x1-x2)**2+(y1-y2)**2)
   return hyp

x=(10,10)
y=(20,20)
print ("hyp=",hypot(x,y))