在Python 3和括号中定义函数

时间:2014-01-23 22:14:07

标签: python python-3.x

我有本教程可以做到这一点

c = (x, y)

def addVectors((angle1, length1), (angle2, length2)):
     do something
     return

然后使用:

调用addVectors
addVector((a, b), c)

但是python 3只是在(angle1, lenght1)

周围的括号上给出了语法错误

由于

2 个答案:

答案 0 :(得分:3)

以前在Python 2中可以这样做,但是在Python 3中通过PEP-3113

删除了

解决方案是在函数内解包参数:

def addVectors(angle1_length1, angle2_length2):
    angle_1, length1 = angle1_length1
    angle_2, length2 = angle2_length2
    do something
    return

答案 1 :(得分:3)

来自what's new in Python3

  

PEP 3113:删除了元组参数解包。您无法再写def foo(a, (b, c)):....请改用def foo(a, b_c): b, c = b_c