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

Python中以函数为Lambda参数的代码执行逻辑解析

嵌套Lambda代码解析

先看你给出的代码:

g = lambda a,b: (lambda x,y: a(x)*b(y))
z = g(sum,sum)([1,2,3],[4,5,6])
print(z)

分步拆解执行逻辑

  1. 定义g函数
    g是一个接收两个参数a和b的Lambda函数,它的返回值是另一个Lambda函数:lambda x,y: a(x)*b(y)。简单说,g的作用是把传入的两个函数a和b打包成一个新函数,这个新函数会接收两个参数x和y,分别用a处理x、b处理y,再把结果相乘。

  2. 调用g(sum, sum)
    这里把Python内置的sum函数作为参数传给g的a和b。此时g(sum, sum)返回的就是内部的Lambda函数,等价于:

lambda x,y: sum(x) * sum(y)
  1. 传入列表计算结果
    紧接着的([1,2,3],[4,5,6])是给这个内部Lambda传参数:
  • x为[1,2,3],sum(x)计算得6
  • y为[4,5,6],sum(y)计算得15
  • 两者相乘得到6*15=90,这就是z的值,最后print(z)输出90。

等价的普通函数写法

换成普通函数会更直观,逻辑和原Lambda代码完全一致:

def g(a, b):
    def inner(x, y):
        return a(x) * b(y)
    return inner

z = g(sum, sum)([1,2,3], [4,5,6])
print(z)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.20 14:03:10