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

将函数作为参数传入另一函数是什么含义?含Python代码相关疑问

函数作为参数传递的逻辑解答

在Python里,函数本身是「第一类对象」,和整数、字符串、列表这类普通数据的地位是一样的,可以赋值给变量、作为参数传给其他函数,也可以作为另一个函数的返回值。你疑惑的test和poly的关联、test(x)的作用,都可以从这个特性出发理解:

  • 你调用print_function([x for x in range(-2, 3)], poly)的时候,第二个参数传的是不带括号的poly,意思就是把poly这个函数本身作为值,传给print_function的第二个形参test。
  • 在print_function的运行作用域里,test就相当于poly的别名,两者指向完全相同的函数逻辑,只是换了个名字而已。
  • 代码里的test(x)就是调用当前test指向的函数(也就是你定义的poly),把遍历拿到的x作为入参传进去,拿到计算返回值。效果和你直接写poly(x)完全没有区别,只是用了形参的名字而已。

举个实际运行的例子:当遍历到x=-2时,test(x)等价于poly(-2),计算结果是2*(-2)**2 -4*(-2)+2 = 18,对应输出就是f(-2)=18。

这种写法最大的好处是通用性强,print_function不用绑定死固定的计算逻辑,你可以随便换其他符合入参要求的函数传进去,不用改print_function的代码就能得到不同的输出。比如你定义一个求平方的函数:

def square(x):
    return x ** 2

再执行print_function([1,2,3], square),就能直接输出每个数的平方结果。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.01 23:27:03