用可变数量参数调用Python函数

1 投票
2 回答
2558 浏览
提问于 2025-04-18 15:30

我有一个脚本,它可以从一个输入文件中读取不同数量的字段,然后把这些字段作为参数传递给一个函数。例如:

文件1有字段:A、B和C => function(A,B,C)

文件N有字段:A、B、C和D => function(A,B,C,D)

我的问题是:如何根据输入文件的字段数量,把正确的字段传递给这个函数呢?

附注:当然,这个函数可以接受任意数量的参数。

2 个回答

1

你应该这样使用 args 和 kwargs:

def foo(*args, **kwargs):
  pass

这样你就可以获取位置参数和命名参数。args 应该是一个值的列表,用来存放位置参数,而 kwargs 应该是一个字典,它的键是参数的名字,值是对应的值。

2

把字段(参数)读入一个列表,然后使用参数解包

function(*fields)

下面是一个演示:

>>> def func(*args):
...     return args
...
>>> fields = ["A", "B", "C"]
>>> func(*fields)
('A', 'B', 'C')
>>> fields = ["A", "B", "C", "D"]
>>> func(*fields)
('A', 'B', 'C', 'D')
>>>

撰写回答