关于 Python 元组解包的说明

Clarifications on Python tuple unpacking

据了解,元组的解包只能发生在 tuples/list 之间 所以

x,*y = (1,2,3,4)

有效。但是,如果我们尝试对单个变量进行解包

*x = (1,2,3,4,5)

我们得到一个错误,因为 x 不是 list/tuple,因此无法进行解包。如果是这样的话 我们如何使用 *args 在 function

中有多个参数
def max(* args):
  for x in args:
    print(x)

所以这里如果我调用 max(1,2,3,4)。我们不应该得到一个错误,因为 *args 不是一个元组,因此我们不能解包吗?

要注意的是 参数列表 的括号总是包含一个元组。 它们是您不能省略的括号。所以它们不会与 operator-priority-brackets

混淆

顺便说一句,有趣的事实: 写(注意 x 后面的逗号)

*x, = (1,2,3,4,5)

然后它就可以工作了,就像您需要在括号中添加一个逗号以使其成为一个元组一样。 像 (1) 不是元组,但是 (1,) 是