Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/325.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
为什么在Python中括号会导致求值?_Python_Lambda_Tuples_Evaluation_Parentheses - Fatal编程技术网

为什么在Python中括号会导致求值?

为什么在Python中括号会导致求值?,python,lambda,tuples,evaluation,parentheses,Python,Lambda,Tuples,Evaluation,Parentheses,我看到在这篇关于Python中lambda函数的被接受的问题中,似乎在OP的问题中,lambda函数定义周围的括号将导致对其进行求值。可能是跨语言的标准行为(正如我在Powershell中看到的类似情况)?也许会以某种方式出现。这一切感觉都很熟悉。但是有人能提供到Python文档的链接(或者即使不存在也应该存在的简洁文本)来解释为什么括号会导致Python中的求值吗 您的答案将帮助我理解列表理解中有关lambda函数的原始答案。否,lambda周围的括号不会导致对其求值。它们用于对表达式进行分组

我看到在这篇关于Python中lambda函数的被接受的问题中,似乎在OP的问题中,lambda函数定义周围的括号将导致对其进行求值。可能是跨语言的标准行为(正如我在Powershell中看到的类似情况)?也许会以某种方式出现。这一切感觉都很熟悉。但是有人能提供到Python文档的链接(或者即使不存在也应该存在的简洁文本)来解释为什么括号会导致Python中的求值吗


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

否,lambda周围的括号不会导致对其求值。它们用于对表达式进行分组,以将其与较大表达式的其他部分区分开来

执行实际调用的是
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

因为
lambda
表达式的。有关使用括号的相关文档是围绕。。。lambda函数定义将导致对其求值-Nope。答案中的
(x)
调用了那些lambda函数。定义周围的括号不会导致函数调用。它们只是将lambda定义(作为表达式)与其他语法分隔开来。这是下一组括号,
(x)
部分,表示调用lambda。由于答案,更新后的问题标题客观上不为假。感谢评论者,并接受了批改答案。(或者,实际上,我似乎必须等待7分钟才能将答案标记为已接受。我很快就会回来。)直到在注释和回答之后,我才发现我没有添加实际的“x”(函数参数语法用括号括起来)。感谢您提供有关Python中优先级的更多信息!
>>> lambda x: x*x(x)
<function <lambda> at 0x1076b32a8>