Python中的"lambda"究竟是什么?

Hos*_*ein 5 python lambda

我想知道lambdapython 究竟是什么?以及使用的地点和原因.谢谢

Dav*_*ave 7

Lambda更像是一种概念或编程技术.

基本上你的想法是你得到一个函数(python中的第一类对象)作为另一个函数而不是对象或基元类型返回的结果.我知道,这令人困惑.

python文档中查看此示例:

def make_incrementor(n):
  return lambda x: x + n
f = make_incrementor(42)
f(0)
>>> 42
f(1)
>>> 43
Run Code Online (Sandbox Code Playgroud)

因此make_incrementor创建一个在其结果中使用n的函数.你可以有一个函数,将参数增加2,如下所示:

f2 = make_incrementor(2)
f2(3)
>>> 5
Run Code Online (Sandbox Code Playgroud)

这是函数式编程和函数式编程语言(如lisp和scheme)中非常强大的思想.

希望这可以帮助.


Gle*_*ard 6

Lambdas不是匿名函数.Lambdas是匿名表达.

它们像函数一样被访问,但它们不是同一个东西.函数允许复杂的任务:流控制,变量声明和包含表达式的语句列表.表达式只是函数的一部分,这就是lambda给你的东西.与功能相比,它们受到严重限制.

Python不支持匿名函数.有关语言的示例,请参阅Javascript和Lua.

(注意:在函数式语言中调用lambdas匿名函数是正确的,其中使用了"函数"的数学定义,但在过程语言中,这个词与数学有着截然不同的含义.)