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

Why does a lambda incorporated with the argument directly in brackets not give me the desired output?

当我写这篇文章时:

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))