-1

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

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

Python中有没有一种方法可以使用多个*args?在此先感谢您的帮助。

4

5 回答 5

6

不,因为无法决定是否

my_func(a, b)

方法

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

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

于 2011-10-08T11:47:46.883 回答
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])
于 2011-10-08T11:49:31.657 回答
0

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

于 2011-10-08T11:46:24.643 回答
0

您想如何调用该函数?为什么不使用两个数组或字典?

于 2011-10-08T11:46:33.003 回答
0

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

def func(*args **kwargs):
    pass

你到底想要完成什么?

于 2011-10-08T11:48:05.367 回答