Từ Python 3.0 (PEP 3113), cú pháp unpacking tuple trực tiếp trong danh sách tham số hàm bị loại bỏ.
Cũ (Python 2) — không còn hợp lệ
def fn(a, (b, c)):
pass # SyntaxError trong Python 3
Cách viết đúng (Python 3)
Nhận tuple làm tham số, unpack bên trong hàm:
def hypot(p1, p2):
x1, y1 = p1
x2, y2 = p2
import math
return math.sqrt((x1 - x2)**2 + (y1 - y2)**2)
x = (10, 10)
y = (20, 20)
print("hyp =", hypot(x, y)) # 14.1421...
Lý do: PEP 3113 loại bỏ tuple parameter unpacking để đơn giản hóa ngữ pháp và tránh nhầm lẫn.