我听说不能在 Python 中添加多行 lambda,因为它们会在语法上与 Python 中的其他语法结构发生冲突。我今天在公交车上思考这个问题,意识到我想不出多行 lambda 与之冲突的单一 Python 结构。鉴于我非常了解这门语言,这让我感到惊讶。
现在,我确定 Guido 有理由不在语言中包含多行 lambda,但出于好奇:在什么情况下包含多行 lambda 会产生歧义?我听说的是真的,还是有其他原因导致 Python 不允许使用多行 lambda?
原文由 Imagist 发布,翻译遵循 CC BY-SA 4.0 许可协议
请看以下内容:
这是一个返回
(y, [1,2,3])
的 lambda(因此 map 只获取一个参数,导致错误)?还是返回y
?还是语法错误,因为新行上的逗号放错了位置? Python 怎么知道你想要什么?在括号内,缩进对 python 无关紧要,因此您不能明确地使用多行。
这只是一个简单的例子,可能还有更多的例子。