Python中没有Multiline Lambda:为什么不这样?

问题:

我听说它说,多行的lambdas不能添加在Python中,因为它们将与Python中的其他语法结构在语法上发生冲突。我今天在公车上想到了这一点,意识到我不能想到一个多行的羊羔与一个Python结构发生冲突。鉴于我很了解这种语言,这让我感到惊讶。
现在,我敢肯定,Guido有理由不用语言中的多行羔羊,而是出于好奇:什么是包含多行lambda的情况是不明确的?是我听到的真实的,还是还有其他的原因,Python不允许多行羔羊?

回答:

看看如下:

map(multilambda x:
      y=x+1
      return y
   , [1,2,3])

这是一个lambda返回(y, [1,2,3])(因此映射只得到一个参数,导致错误)?还是返回y?或者是语法错误,因为新行上的逗号是错位的? Python如何知道你想要什么?
在括号内,缩进与python无关,所以你不能明确地使用多行。
这只是一个简单的例子。

 
 
Code问答: http://codewenda.com/topics/python/
Stackoverflow: No Multiline Lambda in Python: Why not?

*转载请注明本文链接以及stackoverflow的英文链接

发表评论

电子邮件地址不会被公开。 必填项已用*标注

+ 72 = 73