def函数的Python 3语法错误((x,y))

时间:2012-12-27 00:17:18

标签: python function parameters python-3.x python-2.x

所以我正在分析这段代码,我有理由相信这是用python 2.X编码的,但我正在使用3.2,并希望将其转换为可行的。

我遇到的第一个错误是带有语法

的函数
def function((x,y))

为什么它在Py3中不起作用?替代方案是什么?

2 个答案:

答案 0 :(得分:5)

正如E先生在评论中已经说过的,这个功能在Python 3中被PEP 3113删除了。替代方案非常简单,您只需要一个手动解压缩的参数:

def func (xy):
    x, y = xy
    # ...

或者您使用两个参数定义函数,并使该函数的用户自己解压缩它们的值:

def func (x, y):
    # ...

t = (1, 2)
func(*t)

顺便说一下。运行Python的2to3工具来转换现有的Python 2代码以匹配Python 3的语法和库更改是个好主意。

答案 1 :(得分:1)

从理论上讲,

2to3将为您解决这个问题。我说"理论上"因为我没有使用它,但大多数Python都像宣传的那样工作。