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

变量为何可作函数使用?解析Python Lambda示例困惑

为什么mydoubler变量能被当作函数调用?

这核心原因是Python里函数是一等公民——函数可以被当作值来传递、赋值给变量,甚至作为另一个函数的返回值。咱们拆解来看:

  1. 先看myfunc的定义:
    它接收参数n,然后返回一个lambda表达式(也就是匿名函数)。这个lambda函数的逻辑是接收参数a,返回a * n。

  2. 语句3 mydoubler = myfunc(2):
    当你调用myfunc(2)时,n被设为2,此时myfunc返回的是已经绑定了n=2的lambda函数(相当于lambda a: a * 2)。所以mydoubler这个变量,其实是指向了这个lambda函数的引用——它本质上就是个函数,只是名字是mydoubler而已。

  3. 语句4 print(mydoubler(11)):
    既然mydoubler是函数,那自然可以像调用普通函数一样传参。这里把11传给lambda的参数a,计算11 * 2得到22,最终输出结果就是22。

举个更直观的普通函数例子,和这个逻辑完全一致:

def make_multiplier(n):
    def multiplier(a):
        return a * n
    return multiplier

mydoubler = make_multiplier(2)
print(mydoubler(11))  # 同样输出22

这里make_multiplier返回的是一个命名函数multiplier,和返回lambda的区别只是函数有没有名字,本质都是把函数赋值给了mydoubler变量,所以能直接调用。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.25 07:54:20