我不明白为什么这段代码返回对象的repr而不是值20。
>>> a = 10
>>> lambda a: a*2
这是返回到标准输出的内容:
<function <lambda> at 0x02D93780>
答案 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