это именно то, что я пытался достичь. Я добавил дополнительный оператор if, чтобы проверить, является ли kwarg целым числом или кортежем. Спасибо, что не обязательно помещать все ** kwargs в кортеж. Спасибо ребята за помощь!

я есть типы дерева подфункций:

один без каких-либо параметров (аргументов),второй с одним параметромтретий с несколькими параметрами (кортеж)

Я пытаюсь передать эти функции и их аргументы другой функции, которая суммирует результаты всех подфункций и возвращает значение суммы. Параметрами в этой функции должны быть: имена каждой подфункции в качестве аргументов позиции (* args) и аргументы каждой подфункции в качестве аргументов значения ключа (* kvargs).

пример:

 def no_arg()
 def one_arg(a)
 def multiple_args(a, b, c, e, f)

 # execution of function_results_sum:
 function_results_sum(
     no_arg, one_arg, multiple_args,
     one_arg=23,
     multiple_args=(1, 2, 3, 4, 5))

Что я сделал до сих пор:

def no_arg():
    return 5

def ident(x):
    return x

def mult(x, y):
    return x * y    

def function_results_sum(*args, **kwargs):
        return no_arg() + ident(kwargs[ident.__name__]) + mult(*kwargs[mult.__name__])   

Код выше передает аргументы каждой подфункции, ноимена подфункций жестко закодированы, Я хотел бы изменить текущий код, чтобы иметь возможность получать имена функций из * args. Ниже я написал псевдокод, выражающий более менее то, что я пытаюсь достичь:

def function_results_sum(*args, **kwargs):
    for functionName in args:
        result = sum(funcionName(kwargs))
    return result

Я уже целый день боролся с этой проблемой, поэтому, пожалуйста, не пишите мне это"Использование Google не повредит" ;)

Ответы на вопрос(3)

Ваш ответ на вопрос