Computer >> Máy Tính >  >> Lập trình >> Python

tại sao Python không thể định nghĩa các bộ giá trị trong một hàm?


Kể từ Python 3.0, không còn có thể xác định tuple đã giải nén làm tham số trong một hàm (PEP 3113). Nó có nghĩa là nếu bạn cố gắng xác định một hàm như bên dưới -

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


Trình thông dịch Python hiển thị lỗi cú pháp ở dấu ngoặc đầu tiên của tuple. Thay vào đó, hãy xác định các đối tượng tuple dưới dạng tham số và giải nén bên trong hàm. Trong đoạn mã sau, hai bộ đối tượng đại diện cho tọa độ x và y của hai điểm được chuyển làm tham số để tính toán khoảng cách giữa hai điểm. Trước khi tính toán, các đối tượng tuple được giải nén theo các tọa độ x và y tương ứng.

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))