Передайте кортеж в функцию, которая принимает *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)