我听说不能在Python中添加多行lambda,因为它们在语法上会与Python中的其他语法 struct 冲突.我今天在公交车上思考这个问题,意识到我想不出一个多行lambda与之冲突的Python构造.考虑到我对这门语言非常熟悉,这让我很惊讶.
现在,我相信Guido在语言中不包含多行lambdas是有原因的,但出于好奇:在什么情况下包含多行lambda会有歧义?我听说的是真的吗,或者Python不允许多行lambdas的原因有其他原因吗?
我听说不能在Python中添加多行lambda,因为它们在语法上会与Python中的其他语法 struct 冲突.我今天在公交车上思考这个问题,意识到我想不出一个多行lambda与之冲突的Python构造.考虑到我对这门语言非常熟悉,这让我很惊讶.
现在,我相信Guido在语言中不包含多行lambdas是有原因的,但出于好奇:在什么情况下包含多行lambda会有歧义?我听说的是真的吗,或者Python不允许多行lambdas的原因有其他原因吗?
请看以下内容:
map(multilambda x:
y=x+1
return y
, [1,2,3])
这是一个返回(y, [1,2,3])
的lambda(因此map只得到一个参数,导致错误)吗?或者它返回y
?或者是语法错误,因为新行上的逗号放错了位置?Python如何知道您想要什么?
在parens中,缩进对python来说并不重要,因此不能明确地使用多行.
这只是一个简单的例子,可能还有更多的例子.