You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Python中为什么直接在lambda后括号传参无法得到预期输出?

问题原因分析

你的第二段代码无法得到预期输出的核心原因是没有正确完成lambda匿名函数的调用语法,具体问题如下:

  • 首先,lambda表达式本身是一个函数对象,如果你要直接调用它并获取返回值,需要先把整个lambda表达式用括号包裹,再在后面追加参数括号传入实参。你的写法没有给lambda加外层括号,Python解释器会将(10,20)错误识别为是对n2的调用,逻辑变成了n1 * (n2(10,20)),而n2是整数类型根本无法被调用,本身就会触发类型错误。
  • 就算不考虑上述优先级错误,你的写法本质上是把lambda函数对象本身传给了print函数,打印的只会是函数的内存地址,不会执行函数逻辑得到计算结果。

正确写法

如果你要直接调用lambda完成计算,正确代码如下:

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

运行后就可以得到预期输出200。

内容的提问来源于stack exchange,提问作者Anonymous

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.28 16:24:03