为什么直接在括号中包含参数的lambda不给我想要的输出?



当我这样写的时候:

def calculator(operation, n1, n2):
return operation(n1, n2)`
print (calculator(lambda n1, n2: n1 * n2, 10, 20))

我得到了想要的输出200。

但是当我这样写的时候:

print (lambda n1,n2: n1*n2 (10,20))

我没有得到200作为输出。

为什么会这样?

解决方案是将lambda赋值包装在括号()中,如下所示:

print((lambda n1, n2: n1 * n2)(10, 20))

打印:

200

或者,您可以将lambda表达式赋值给一个变量,然后使用变量:

l = lambda n1, n2: n1 * n2
print(l(10, 20))

最新更新