将 n 个参数传递给 Python 中的函数

4 python arguments

我有一个函数,它接受可变数量的变量作为参数。some_list我如何将下面示例中的内容发送到我的myfunc2()

def myfunc1(*args):
    arguments = [i for i in args]
    #doing some processing with arguments...
    some_list = [1,2,3,4,5] # length of list depends on what was  passed as *args
    var = myfunc2(???)  
Run Code Online (Sandbox Code Playgroud)

我能想到的唯一方法是将列表或元组作为myfunc2()参数传递,但也许有一个更优雅的解决方案,所以我不必重写myfunc2()和其他几个函数。

Cha*_*net 6

args是一个元组。*args转换arg为参数列表。您定义myfunc2的方式与myfunc1

def myfunc2(*args):
    pass
Run Code Online (Sandbox Code Playgroud)

要传递参数,您可以一一传递:

myfunc2(a, b, c)
Run Code Online (Sandbox Code Playgroud)

石斑鱼与*操作员:

newargs = (a, b, c)
myfunc2(*newargs)
Run Code Online (Sandbox Code Playgroud)

或结合使用这两种技术:

newargs = (b, c)
myfunc2(a, *newargs)
Run Code Online (Sandbox Code Playgroud)

同样适用于**运算符,它将 dict 转换为命名参数列表。