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

Python中函数作为参数的用法解析及示例代码答疑

Python中函数作为参数的实现与代码解析

一、函数作为参数的实现方式

在Python里,函数是一等对象,你可以像传递数字、字符串这类普通变量一样,直接把函数名作为参数传给另一个函数,不需要额外语法处理。这是Python支持函数式编程的基础特性。

二、给定代码的逻辑解析

完整代码如下:

def mult_by_five(x):
    return 5 * x

def call(fn, arg):
    """Call fn on arg"""
    return fn(arg)

def squared_call(fn, arg):
    """Call fn on the result of calling fn on arg"""
    return fn(fn(arg))

print(
    call(mult_by_five, 1),
    squared_call(mult_by_five, 1), 
)

逐部分拆解逻辑:

  1. mult_by_five(x):普通工具函数,接收参数x,返回x乘以5的结果。比如传入1返回5,传入2返回10。
  2. call(fn, arg):高阶函数(接收函数作为参数的函数),作用是调用传入的函数fn,把arg作为fn的参数传入,返回fn的执行结果。
  3. squared_call(fn, arg):也是高阶函数,会连续调用两次fn:先把arg传给fn得到第一次结果,再把这个结果作为参数传给fn做第二次调用,返回最终值。
  4. print语句:执行后输出两个值:
    • call(mult_by_five, 1)等价于mult_by_five(1),结果是5;
    • squared_call(mult_by_five, 1)等价于mult_by_five(mult_by_five(1)),也就是mult_by_five(5),结果是25。
      最终输出为5 25。

三、call函数的使用方法与参数说明

使用方法

直接调用call函数,传入两个参数:第一个是要执行的目标函数,第二个是该目标函数所需的参数。示例:

def add_two(x):
    return x + 2

print(call(add_two, 3))  # 输出5,等价于add_two(3)

参数说明

  • fn:必须是可调用对象(比如自定义函数、Python内置函数),且该对象需要能接收一个参数。若传入非可调用对象,运行时会报错。
  • arg:传递给fn的参数,类型需符合fn的参数要求(比如mult_by_five需要数字类型,不能传字符串)。

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

相关产品推荐
方舟 Agent Plan

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

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