有没有办法在Python函数中使用多个可变长度参数(* args)?

时间:2011-10-08 11:44:21

标签: python args

我想创建一个使用两个可变长度参数的函数。例如:

def my_func(*args1, *args2):
    for i in args1:
        do stuff
    for j in args2:
        do stuff

Python中有没有办法使用多个*args?在此先感谢您的帮助。

5 个答案:

答案 0 :(得分:6)

不,因为没有办法决定是否

my_func(a, b)

装置

args = [], args2 = [a,b] # or ..
args = [a], args2 = [b]  # or ..
args = [a,b], args2 = []

相反,只需让函数将两个列表作为参数。

答案 1 :(得分:1)

您应该使用列表。这样,很明显哪个项目在哪个参数中出现:

def my_func(args1, args2):
    for a in args1:
        print a
    for b in args2:
        print b

my_func([1, 2, 3], [4, 5, 6])

答案 2 :(得分:0)

您可以为每个参数使用数组(或数组的任何Python名称)。否则,Python无法知道在哪里拆分每组变量长度参数。

答案 3 :(得分:0)

你想怎么称呼这个功能?为什么不使用两个dicts数组?

答案 4 :(得分:0)

不,这甚至没有意义。什么会决定第一个列表中的内容以及第二个列表中的内容?您也可以传递关键字参数(如果您还不知道):

def func(*args **kwargs):
    pass

你想要完成的是什么?