为什么 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))
广告