为什么 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 次浏览

开启 职业生涯

完成课程获取认证

开始
广告