我不明白为什么这段代码返回对象的repr而不是值20。
>>> a = 10
>>> lambda a: a*2
这是返回标准输出的内容:
<function <lambda> at 0x02D93780>
您需要调用该函数并将参数传递给它。
a = 10
(lambda a: a*2)(a)
# declaring the lambda
my_lambda_function = lambda a: a*2
# calling the lambda
my_lambda_function(10)
您需要将函数对象分配给某个变量以便将来使用它。 Lambda表达式创建函数对象(如def语句),您需要调用它来检索结果
>>> a = 10
>>> myfunc = lambda a: a*2
>>> myfunc(11) #22
22
因为您创建了一个函数,所以它将该函数打印到控制台。创建函数时,它会打印函数的文字内存位置。您必须将函数存储在变量中并打印它以获得输出,内存位置和函数类型。这是一个例子:
>>> a = 10
>>> lambda a: a *2
<function <lambda> at 0x033E7978>
>>> print(a)
10