从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))