pasar funciones y sus argumentos a otra función
Tengo tipos de árbol de subfunciones:
uno sin ningún parámetro (argumentos),segundo con un parámetrotercero con múltiples parámetros (tupla)Estoy tratando de pasar esas funciones y sus argumentos a otra función que suma los resultados de todas las subfunciones y devuelve el valor de la suma. Los parámetros en esa función deben ser: nombres de cada subfunción como argumentos de posición (* args) y argumentos de cada subfunción como argumentos de clave-valor (* kvargs).
Ejemplo:
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))
Lo que he hecho hasta ahora:
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__])
El código anterior está pasando argumentos a cada subfunción, perolos nombres de las subfunciones están codificados. Me gustaría modificar el código actual para poder obtener nombres de funciones de * args. A continuación, escribí un pseudocódigo que expresa más menos lo que estoy tratando de lograr:
def function_results_sum(*args, **kwargs):
for functionName in args:
result = sum(funcionName(kwargs))
return result
Ya he pasado todo el día luchando con ese problema, así que por favor no me escriba eso"usar google no hace daño" ;)