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

更新于:2020 年 2 月 18 日

170 次浏览

开启您的 职业

完成课程,获得认证

入门
广告