使用未知数量的参数调用python函数

时间:2012-08-15 16:16:35

标签: python arguments

我正在编写一个小脚本,我在其中调用itertools.product:

for p in  product(list1,list2,list3):
            self.createFile(p)

我有没有办法在不事先知道要包含多少列表的情况下调用此函数?

由于

2 个答案:

答案 0 :(得分:14)

您可以使用星号或splat运算符(它有几个名称):for p in product(*lists)其中lists是要传递的元组或列表。

def func(a,b):
    print (a,b)

args=(1,2)
func(*args)

在定义函数时,你可以做类似的事情,允许它接受可变数量的参数:

def func2(*args): #unpacking
   print(args)  #args is a tuple

func2(1,2)  #prints (1, 2)

当然,您可以将splat运算符与可变数量的参数组合在一起:

args = (1,2,3)
func2(*args) #prints (1, 2, 3)

答案 1 :(得分:2)

使用splat运算符(*)传递和收集未知数量的参数位置参数。

def func(*args):
   pass

lis = [1,2,3,4,5]
func(*lis)