“lambdas不能有赋值语句”,那么为什么“foo=lambda x:x*2”是合法的?

2024-05-14 09:51:59 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在阅读stevenlott的函数式Python编程,这是一本关于在功能上使用Python而不是以一种更面向对象的方式使用Python的书,它主要针对它的大多数示例进行探索性的数据分析。在

洛特说Lamda不能有任务声明。但在同一页上,他给一个变量分配了一个lambda函数:

>>mersenne = lambda x: 2**x-1
>>mersenne(17)
 131071

那怎么不是赋值语句?我还缺少什么“使命感”?在


Tags: lambda函数功能声明示例编程方式语句
2条回答

在“lambda”函数中不能有赋值,但是lambda本身可以用于赋值。在

所以你不能说lambda x: y = x*2; return y,但你可以说foo = lambda x: x*2

这不是任务。在

Python中的lambda不能包含赋值。但这几乎是Python实现函数范式的唯一方面。语言的其余部分具有一些不可回避的过程特性;很难想象一个Python程序不包含任何赋值。在

相关问题 更多 >

    热门问题