关于lambda:为什么括号似乎在Python中引起评估?

Why do parentheses appear to cause evaluation in Python?

我在这个关于Python中lambda函数的公认答案中看到,在op的问题中,lambda函数定义的括号似乎会导致对它进行评估。可能是跨语言的标准行为(我在PowerShell中看到类似的情况)?关于元组的这个答案可能会有某种意义。感觉都很熟悉。但是,是否可以有人提供到Python文档的链接(或者即使没有,也应该有简洁的文本)来解释为什么括号会导致Python中的评估?

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


NO在周围的括号,因为lambda不做评价。他们是有集团的表达,区分它从其他的配件和更大的表达。

它是一个完整的(x)如下:实际lambda酒店电话

1
2
3
4
5
6
7
>>> 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)会Part of the Lambda函数表达为:包裹。

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

因为lambda表达precedence所有Python有最低的运营商。有关文献关于使用括号和括号的形式部分。