Подтвердить что ты не робот

Передача всех аргументов функции другой функции

Я хочу передать все аргументы, переданные функции (func1) в качестве аргументов другой функции (func2) внутри func1 Это можно сделать с помощью *args, *kwargs в вызываемом func1 и передать их до func2, но есть ли другой способ?

Первоначально

def func1(*args, **kwargs):
    func2(*args, **kwargs)

но если моя подпись func1

def func1(a=1, b=2, c=3):

как я могу отправить их все в func2, не используя

def func1(a=1, b=2, c=3):
    func2(a, b, c)

Есть ли способ, как в javascript callee.arguments?

4b9b3361

Ответ 1

Явный лучше, чем неявный, но если вы действительно не хотите вводить несколько символов:

def func1(a=1, b=2, c=3):
    func2(**locals())

locals() - все локальные переменные, поэтому вы не можете устанавливать лишние вары перед вызовом func2, иначе они также будут переданы.

Ответ 2

Если аргументы func1 являются только аргументами ключевого слова, вы можете сделать это:

def func1(a=1, b=2, c=3):
    func2(**locals())