我正在阅读Steven Lott撰写的“功能性Python编程”,这是一本关于使用Python'功能性的'而不是以更加面向对象的方式,而是侧重于大多数示例的探索性数据分析。
洛特说,拉姆达不能发表作业声明。但是在同一页面上,他为变量分配了一个lambda函数:>>mersenne = lambda x: 2**x-1
>>mersenne(17)
131071
这怎么不是作业陈述?还有其他一些分配意识吗?我失踪了?
答案 0 :(得分:5)
您不能在“lambda”函数中进行赋值,但lambda本身可用于赋值。
所以你不能说lambda x: y = x*2; return y
之类的内容,但你可以说foo = lambda x: x*2
答案 1 :(得分:0)
这不是一项任务。
Python中的lambda不能包含赋值。但这几乎是Python强制执行功能范式的唯一方面。该语言的其余部分具有一些不可避免的程序特征;很难想象一个不包含任何赋值的Python程序。