Lambda表达式未返回值

时间:2018-09-05 12:06:37

标签: python lambda expression

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

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

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

<function <lambda> at 0x02D93780>

4 个答案:

答案 0 :(得分:1)

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

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

答案 1 :(得分:1)

# declaring the lambda
my_lambda_function = lambda a: a*2

# calling the lambda
my_lambda_function(10)

答案 2 :(得分:1)

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

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

答案 3 :(得分:0)

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

>>> a = 10

>>> lambda a: a *2

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

10