将元组传递给需要* args和** kwargs的函数

时间:2017-05-30 10:07:51

标签: python python-3.x argument-unpacking

我有两个功能:

def foo(*args, **kwargs):
    pass

def foo2():
    return list(), dict()

我希望能够将foo2中的列表和dict作为foo中的args和kwargs传递,但是当我使用它时

foo(foo2())

foo(*foo2())
foo2返回的

元组被赋值给* args。 我该怎么做呢?

1 个答案:

答案 0 :(得分:2)

您必须foo2()个参数解包成两个名称​​ first ,您不能直接使用这两个返回值作为具有现有语法的*args**kwargs

使用:

args, kwargs = foo2()
foo(*args, **kwargs)