用可变数量参数调用Python函数
我有一个脚本,它可以从一个输入文件中读取不同数量的字段,然后把这些字段作为参数传递给一个函数。例如:
文件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')
>>>