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

Python Lambda表达式可视化求助:转def函数并解析执行过程

转写为def函数版本

把原代码中的所有lambda表达式转换为普通def定义的函数,等价代码如下:

# 对应原代码中的 lambda x: lambda y: x
def pick_first(x):
    def inner(y):
        return x
    return inner

# 对应原代码中的 lambda z: z * 2
def double(z):
    return z * 2

# 对应原代码中的 lambda x, y: lambda z: (x)(y)(z)
def f(x, y):
    def apply_chain(z):
        return x(y)(z)
    return apply_chain

# 原调用语句的等价写法
print(f(pick_first, double)(3)(4))
执行过程拆解

我们一步步拆解整个调用的逻辑:

  • 第一步调用f(pick_first, double):给函数f传入两个参数,x绑定为pick_first函数,y绑定为double函数;f返回内部定义的apply_chain函数,这个函数已经记住了x和y的绑定关系。
  • 第二步调用apply_chain(3):进入apply_chain函数,执行x(y)(z),也就是pick_first(double)(3)。先执行pick_first(double):pick_first接收参数x=double,返回它的inner函数,这个inner函数的逻辑是无论传入什么参数,都返回之前传入的x(也就是double函数)。这一步结束后得到一个会返回double函数的新函数。
  • 第三步调用这个新函数并传入4:也就是执行double(4),计算4*2=8,最终输出结果8。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.11 19:10:33