Python SyntaxError: invalid syntax, are brackets allowed in function parameters in python3?

Python SyntaxError: invalid syntax, are brackets allowed in function parameters in python3?

该函数在 python2:

中有效
def setCellValue(self, (x, y), value):
    self.map[x][y] = value

但是当我在 python3 中尝试时,它显示了无效的语法:

def setCellValue(self, (x, y), value):
                            ^
SyntaxError: invalid syntax

是支架问题吗?我如何在 py3 中解决这个问题?

是的,这个功能在 Python 3 中被删除了。它在签名检查方面表现不佳。您必须自己解压缩参数:

def setCellValue(self, pos, value):
    x, y = pos
    ...

是的,在 python3 中删除了元组解包。根据PEP 3113:

The example function at the beginning of this PEP could easily be rewritten as:

def fxn(a, b_c, d):
    b, c = b_c
    pass 

and in no way lose functionality.

它的存在只会使语法和字节码生成变得复杂,因此被删除了。