Передайте кортеж в функцию, которая принимает *args и **kwargs

У меня есть две функции:

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

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

Я хочу быть в состоянии передать список и диктовать из foo2 как args и kwargs в foo, однако, когда я использую его как

foo(foo2())

или же

foo(*foo2())

кортеж, возвращаемый foo2, присваивается *args. Как я должен сделать это правильно?

1 ответ

Решение

Вам придется распаковать свой foo2() сначала аргументы в два имени, вы не можете напрямую использовать два возвращаемых значения как *args а также **kwargs с существующим синтаксисом.

Использование:

args, kwargs = foo2()
foo(*args, **kwargs)
Другие вопросы по тегам