lambda

lambda

我是新手,大家多帮忙
f=lambda x,y,z:a=x+y+z
SyntaxError: can't assign to lambda
为什么会出错?
另外我想函数体有多条语句应该怎么写?如f=lambda x,y,z:a=x b=y c=z
f = lambda x, y, z: x + y + z

QUOTE:
一个完整的 lambda“语句”代表了一个表达式,这个表达式的定义体必须和声明放在同一行。

我对你的头像挺感兴趣,能给我解释一下吗
如果多个返回结果,可以用列表。
f = lambda x,y,z: (3 * x, 2*y, z *z)
是不是不能在使用语句,只能使用表达式啊?
因为f=lambda x,y,z:[x=2]报错
看看帮助文档吧。
这样的问题建议先去看文档或者教程,再来提问把。

不是每个问题都需要发帖来问的哦。


QUOTE:
原帖由 wangxiaoguang 于 2008-9-7 21:23 发表
是不是不能在使用语句,只能使用表达式啊?
因为f=lambda x,y,z:[x=2]报错

lambda函数中不能包含赋值语句。
谢谢了
我也来回答一下。我不知道LZ是什么原因,我在cmd方式下运行,是一切正常的。lz的这个表达式是出自《0'reilly - Learning Python 2nd Ed》这本吧,书中有说到lambda bodies are a single expression, not a block of statements.所以我的理解是lambda没办法多行,它不是一个代码块。C#中的lambda是可以多行写的。