为什么括号似乎会导致 Python 中的计算?

Why do parentheses appear to cause evaluation in Python?

我看到这个接受了 answer to a question about lambda functions in Python, it seems that the parentheses around what was, in the OP's question, a lambda function definition, will cause it to be evaluated. Perhaps standard behavior across languages (as I see similar in Powershell, here)? And this answer about tuples 可能会以某种方式出现。这一切感觉很熟悉。但是有人可以提供 link 到 Python 文档(或即使不存在也应该存在的简洁文本)来解释为什么括号会导致 Python 中的评估吗?

你的回答将帮助我消化关于列表理解中的 lambda 函数的原始答案。

不,lambda 周围的括号不会导致对其求值。它们在那里 group 表达式,以将其与较大表达式的其他部分区分开来。

真正调用的是 lambda 之后的 (x)

>>> lambda x: x*x
<function <lambda> at 0x1076b3230>
>>> (lambda x: x*x)
<function <lambda> at 0x1076b32a8>
>>> x = 10
>>> (lambda x: x*x)(x)
100

如果您不使用括号,(x) 将成为 lambda 函数封装的表达式的一部分:

>>> lambda x: x*x(x)
<function <lambda> at 0x1076b32a8>

因为 lambda 表达式具有最低的 precedence of all Python operators. The relevant documentation about using parentheses is the Parenthesized forms section.