在此Python示例中,为什么+运算符的优先级比*高?

时间:2020-02-18 08:31:18

标签: python tuples operator-precedence

突然我遇到了以下代码示例:

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,+运算符的优先级应该比*低(尽管它仅针对乘法提到*)。

有人可以解释原因吗?

0 个答案:

没有答案