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

如何将列表元素逐个作为参数传递给函数,而非直接传入整个列表

问题解答

这个需求完全可以实现,你之前对func(*argv)的用法存在误解:Python的星号(*)序列拆包语法,作用就是把元组/列表内的所有元素依次作为独立的位置参数传递给目标函数,而非把整个序列作为单个参数传入。

你只需要把funcExecuter函数按如下方式实现即可:

def funcExecuter(func, nbArgs, *argv):
    # *号会把argv元组里的元素逐个拆成位置参数传给func
    return func(*argv)

以你的调用逻辑为例:

  • 执行funcExecuter(testA, 3, 1, 2, 3)时,argv接收到的值为元组(1,2,3),func(*argv)等价于testA(1,2,3),完全匹配testA的参数要求
  • 执行funcExecuter(testB, 2, 1, 2)时,func(*argv)等价于testB(1,2),同样匹配参数要求

另外你传入的nbArgs参数实际是冗余的,你也可以省略这个参数,简化实现和调用逻辑:

# 简化后的实现
def funcExecuter(func, *argv):
    return func(*argv)

# 简化后的调用
funcExecuter(testA, 1, 2, 3)
funcExecuter(testB, 1, 2)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.25 04:54:05