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

Python中如何实现向函数增量传递参数?

问题解决:正确传递可变数量的位置参数

问题原因

你当前的代码中,func(par)是把整个列表par当作第一个参数a传入函数,所以函数的b和c始终使用默认值,导致输出不符合预期。

正确实现

使用Python的参数解包操作符*,它可以把列表(或其他可迭代对象)中的元素逐个拆解为函数的位置参数。修改后的代码如下:

def func(a, b="string0", c=False):
    print(f"a={str(a)}, b={str(b)}, c={str(c)}")

a=1
b="string"
c=True

params = [[a], [a, b], [a, b, c]]

for par in params:
    func(*par)  # 用*解包列表元素作为位置参数

输出结果

执行后会得到符合预期的输出:

a=1, b=string0, c=False
a=1, b=string, c=False
a=1, b=string, c=True

原理说明

*par会将列表par中的每一个元素依次对应到函数的位置参数上:

  • 当par = [a]时,*par等价于传入a,即调用func(a)
  • 当par = [a, b]时,*par等价于传入a, b,即调用func(a, b)
  • 当par = [a, b, c]时,*par等价于传入a, b, c,即调用func(a, b, c)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.24 07:27:01