Python中没有多行Lambda:为什么不呢?
问题内容:
我听说它说不能在Python中添加多行lambda,因为它们会在语法上与Python中的其他语法结构发生冲突。我今天在公交车上考虑这个问题,意识到我想不出一个与多行lambda冲突的Python结构。鉴于我对这门语言非常了解,这让我感到惊讶。
现在,我确定Guido有一个理由不在语言中包含多行lambda,而是出于好奇:在什么情况下包含多行lambda会导致歧义?我所听到的是对的,还是Python不允许多行lambda的其他原因?
问题答案:
请看以下内容:
map(multilambda x:
y=x+1
return y
, [1,2,3])
这是lambda返回(y, [1,2,3])
(因此映射仅获得一个参数,从而导致错误)吗?还是返回y
?还是语法错误,因为新行上的逗号放置不正确?Python如何知道您想要什么?
在括号内,缩进对于python并不重要,因此您不能明确地使用多行。
这只是一个简单的例子,可能还有更多示例。