突然我遇到了以下代码示例:
def foo(a, b, c):
return a + b + c
d = foo(*(1, 2) + (3,))
print(d)
此代码对Python 2.7.17和3.6.9均有效。输出为6。 因此,该代码似乎等效于以下内容:
def foo(a, b, c):
return a + b + c
d = foo(*((1, 2) + (3,)))
print(d)
*
在这里使元组解包,但是为什么要在两个元组并置后完成?
但是我有充分的证据表明,根据official documentation about operator precedence,+运算符的优先级应该比*低(尽管它仅针对乘法提到*)。
有人可以解释原因吗?