Lambda表达式不返回值

问题描述 投票:-1回答:4

我不明白为什么这段代码返回对象的repr而不是值20。

>>> a = 10
>>> lambda a: a*2

这是返回标准输出的内容:

<function <lambda> at 0x02D93780>
python lambda expression
4个回答
1
投票

您需要调用该函数并将参数传递给它。

a = 10
(lambda a: a*2)(a)

1
投票
# declaring the lambda
my_lambda_function = lambda a: a*2

# calling the lambda
my_lambda_function(10)

1
投票

您需要将函数对象分配给某个变量以便将来使用它。 Lambda表达式创建函数对象(如def语句),您需要调用它来检索结果

>>> a = 10
>>> myfunc = lambda a: a*2
>>> myfunc(11) #22
22

0
投票

因为您创建了一个函数,所以它将该函数打印到控制台。创建函数时,它会打印函数的文字内存位置。您必须将函数存储在变量中并打印它以获得输出,内存位置和函数类型。这是一个例子:

>>> a = 10

>>> lambda a: a *2

<function <lambda> at 0x033E7978>
>>> print(a)

10
© www.soinside.com 2019 - 2024. All rights reserved.