【问题标题】:Python 3 syntax error with def function((x,y)) [duplicate]带有def函数的Python 3语法错误((x,y))[重复]
【发布时间】:2012-12-27 00:17:18
【问题描述】:

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

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

def function((x,y))

为什么它在 Py3 中不起作用,还有什么替代方法?

【问题讨论】:

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


【解决方案1】:

正如 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 的语法和库更改是一个好主意。

【讨论】:

    【解决方案2】:

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

    【讨论】:

    • 我不知道那个工具。谢谢你:)
    猜你喜欢
    • 2015-06-23
    • 2020-12-19
    • 1970-01-01
    • 1970-01-01
    • 2021-07-01
    • 2017-07-12
    • 2021-09-07
    • 1970-01-01
    相关资源
    最近更新 更多