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

Python中如何通过调用其他函数的函数向被调函数传递参数

解决方法

以下是两种常用的实现方案:

  • 方案1:修改function_1定义,支持传入子函数参数
    你可以给function_1增加可变位置参数*args和可变关键字参数**kwargs,用来接收所有要传给内部调用函数的参数,调用时直接透传即可。
    修改后的完整示例代码如下:
def function_1(x, function, *args, **kwargs):
    print(x)
    # 透传参数给传入的函数
    function(*args, **kwargs)


def function_2(y):
    print(2*y)


def function_3(z, n):
    print(3*z)
    print(5 * n)


# 给function_2传入参数y=10
function_1(5, function_2, 10)
print("----------")
# 给function_3传入参数z=2、n=4
function_1(3, function_3, 2, 4)

运行后输出结果为:

5
20
----------
3
6
20

该方案适合你有权限修改function_1源码的场景,灵活性最高,支持传入任意参数的子函数。

  • 方案2:无需修改原有代码,用lambda匿名函数绑定参数
    如果你不能修改function_1的原有定义,可以直接在调用时用匿名函数把要传入的参数和子函数提前绑定,再传给function_1:
# 原有未修改的function_1
def function_1(x, function):
    print(x)
    function()


def function_2(y):
    print(2*y)


def function_3(z, n):
    print(3*z)
    print(5 * n)


# 用lambda绑定function_2需要的参数y=10
function_1(5, lambda: function_2(10))
print("----------")
# 用lambda绑定function_3需要的参数z=2、n=4
function_1(3, lambda: function_3(2, 4))

运行结果和方案1完全一致,该方案适合无法修改上层函数定义的场景,调用更灵活。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.04 02:12:02