gpt4 book ai didi

python - 如果匿名,对 python lambda 的调用是什么?

转载 作者:行者123 更新时间:2023-12-04 14:33:20 25 4
gpt4 key购买 nike

我有 lambda_expr::= "lambda"[parameter_list]: 表达式

并且您应该能够在不为其分配名称的情况下执行此操作。那么什么构成了对 lambda 函数的调用。换句话说,如果你想将 this 用作内联函数,是什么让它做它应该做的?

最佳答案

lambda 表达式返回 function对象,因此您可以像调用任何其他函数一样调用它,使用 () .

>>> (lambda x : x + 3)(5)
8

一个看起来更“正常”的函数调用以相同的方式工作,除了函数对象是按名称引用的,而不是直接引用。下面演示了完成同一件事的三种不同方法:调用一个函数,该函数返回其参数的值加 3。
def foo_by_statement(x):
return x + 3

foo_by_expression = lambda x: x + 3

print foo_by_statement(2)
print foo_by_expression(2)
print (lambda x: x + 3)(2)

第一种是将函数对象绑定(bind)到名称的传统方式,使用 def陈述。第二个是等效绑定(bind),使用直接赋值将名称绑定(bind)到 lambda 的结果上。表达。第三个是再次调用 lambda 的返回值直接表达式而不先将其绑定(bind)到名称。

通常,您从未真正编写过这样的代码。 lambda表达式对于生成只需要作为高阶函数参数的函数对象最有用。不必定义函数并将其绑定(bind)到一个永远不会再使用的名称,您只需创建值并立即将其作为参数传递。例如:
plus_three = map(lambda x: x+3, [1,2,3])

关于python - 如果匿名,对 python lambda 的调用是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26873012/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com