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

如何编写可接收可变参数的Python高阶函数且不修改原有函数?

实现可变参数的Python高阶函数方案

你可以通过调整higher函数的参数定义,利用Python的*args语法实现需求,完全不需要修改one_arg()和two_arg()这两个函数。

修正后的higher函数代码

def higher(fnc, *args):
    print(f"Calling function {fnc.__name__}")
    fnc(*args)

关键逻辑说明

  • 将higher的第二个参数改为*args:这样函数就能接收任意数量的位置参数,这些参数会被自动打包成一个元组存储在args变量中。
  • 调用目标函数时使用fnc(*args):通过*操作符将args元组中的参数逐个解包,传递给目标函数,完美适配one_arg(单参数)和two_arg(双参数)的参数需求。

测试原有调用代码

直接运行你原来的调用语句:

higher(one_arg, "Only one argument")
higher(two_arg, "Here's one arg", "and Another one")

就能得到符合预期的输出。

(注:你原代码中one_arg函数内部的变量名存在笔误,only应该改为only_arg,但按照要求我们不需要修改这两个函数本身)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.12 00:50:49