📜  Python中的嵌套 Lambda函数

📅  最后修改于: 2022-05-13 01:54:29.338000             🧑  作者: Mango

Python中的嵌套 Lambda函数

先决条件: Python lambda

在Python中,匿名函数意味着函数没有名称。我们已经知道 def 关键字用于定义普通函数,而 lambda 关键字用于创建匿名函数。当我们在另一个 lambda函数中使用 lambda函数时,它被称为嵌套 Lambda函数

示例 1:

# Python program to demonstrate
# nested lambda functions
  
  
f = lambda a = 2, b = 3:lambda c: a+b+c
  
o = f()
print(o(4))

输出:

9

这里,当调用参数为 4 的对象 o 时,控制转移到 f() ,它是整个 lambda函数的调用者对象。然后发生以下执行 -

  • 嵌套的 lambda函数从第一个 lambda函数中获取 a 和 b 的值作为 a=2 和 b=3。
  • 它从传递 c = 4 的调用者对象 o 中获取 c 的值。
  • 最后我们得到输出,它是 a、b 和 c 的总和,即 9。

示例 2:

# Python program to demonstrate
# nested lambda functions
  
  
square = lambda x: x**2
product = lambda f, n: lambda x: f(x)*n
  
ans = product(square, 2)(10)
print(ans)

输出:

200

在上面的例子中,当调用 product函数时,square函数被绑定到 f,2 被绑定到 n,然后返回一个绑定到乘积的函数,当使用 10 调用时,x 被分配 this 并且 square 被调用,这返回 100,然后再乘以 n,即 2。所以它最终会返回 200。