为什么 Python 无法在一个函数中定义元组?
自 Python 3.0 之后,就不再可以在函数内定义元组解包作为参数(PEP 3113)。这意味着如果你尝试按以下方式定义函数——
def fn(a,(b,c)): pass
Python 解释器会在元组的第一个括号处显示语法错误。相反,定义元组对象作为参数,并在函数内部解包。在以下代码中,表示两个点 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))
广告