【发布时间】:2014-05-24 07:23:25
【问题描述】:
我找到了这个页面:
http://effbot.org/pyfaq/why-can-t-lambda-forms-contain-statements.htm
不过,原因还不是很清楚。 Lambda 很强大,在我看来,如果可以在其范围内使用语句/赋值,它们会更强大。
例如:
y = 0
f = lambda x: y = 5, x+y # Statements first, expression later.
print f(5) # 10
一定有人考虑到了这一点,并且没有实现它一定是有原因的(也许是为了避免过度使用它们而不是微不足道的def?)。
【问题讨论】:
-
为什么不
lambda x: x + 5?此外,stackoverflow.com/questions/1233448/… 的可能重复项 -
@JesseMu:虽然我不会说完全重复,但第二个答案是,我相信 OP 正在寻找什么。
-
因为它使可读性变差。也给匿名函数起名字有点不合时宜。
标签: python lambda scope expression