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

如何从无参lambda函数中获取并打印计算结果5?

解决方法

你的代码里,testt是一个lambda函数,直接打印它只会输出函数对象。要拿到数值5,需要两步:

  • 首先调用lambda函数testt(),得到testfn(2,3)返回的生成器对象
  • 然后从生成器中取出产出的值

方法一:用next()函数获取生成器的第一个值

修改后的代码如下:

def testfn(x,y):
   yield (x+y)

testt = lambda: testfn(2,3)   
print(next(testt()))  # 输出5

方法二:遍历生成器获取值

如果生成器可能产出多个值,也可以用循环遍历:

def testfn(x,y):
   yield (x+y)

testt = lambda: testfn(2,3)   
for result in testt():
    print(result)  # 输出5

为什么原代码不行?

因为testfn是用yield定义的生成器函数,调用它不会直接返回计算结果,而是返回一个生成器对象,只有通过next()或者迭代操作,才会执行函数体并得到x+y的结果。而你原代码里直接打印testt,输出的是lambda函数本身,既没有调用lambda,也没有处理生成器。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.12 18:19:48