我已经找到了这个网页:为什么Python不允许lambda表达式的局部范围内的语句?
http://effbot.org/pyfaq/why-can-t-lambda-forms-contain-statements.htm
然而,它不是那么清楚,为什么原因。兰巴达斯是强大的,在我看来,如果有可能在他们的范围内使用陈述/作业,他们会更多。
例如:(?也许是为了避免使用它们太多,而不是一个简单的DEF)
y = 0
f = lambda x: y = 5, x+y # Statements first, expression later.
print f(5) # 10
一定有人考虑这一点,必须有一个原因,它没有实现。
为什么不'lambda x:x + 5'?此外,可能重复http://stackoverflow.com/questions/1233448/no-multiline-lambda-in-python-why-not – jayelm
@JesseMu:虽然我不会说一个确切的重复,但第二个答案是,我相信OP正在寻找。 – Dair
因为它使可读性变差。同样给匿名函数的名字有点违背了这一点。 –