所以我正在分析这段代码,我有理由相信这是用 python 2.X 编码的,但我使用的是 3.2 并且想转换它以便它可以工作。
我遇到的第一个错误是带有语法的函数
def function((x,y))
为什么它在 Py3 中不起作用,还有什么替代方法?
所以我正在分析这段代码,我有理由相信这是用 python 2.X 编码的,但我使用的是 3.2 并且想转换它以便它可以工作。
我遇到的第一个错误是带有语法的函数
def function((x,y))
为什么它在 Py3 中不起作用,还有什么替代方法?
正如 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 的语法和库更改是一个好主意。
理论上, 2to3会为您解决这个问题。我说“理论上”是因为我没有使用过它,但大多数 Python 都像宣传的那样工作。