Как правильно передавать параметры во вложенную функцию

Нужно передать параметры во вложенную функцию. Я написал функцию, которая запускает другую вложенную функцию, в зависимости от ситуации.

  def foo(c):

    return(a+b+c)

  def bar(c):

     return(b*c)

  a=5
  b=5

  def result(d, func):
     return(func(d))

  print(result(6, bar))
  print(result(10, foo))

Но интуитивно понимаю, что делаю как-то неправильно. Как можно преобразовать данный код, чтобы вынести переменные а и b в параметры вложенных функций что-то типа:

   def foo(a,b,c): 
       return(a+b+c)

ну и дальше при запуске основной функции вот как-то так запускалось

   result(10, foo(5,6, с))

но чтобы первые пераметры приходили с вложенной функцией, ибо они связаны с ней и каждый раз выполнять переприсваивание немного затруднительно, ибо они тоже берутся с других функций и возникает плохая читаемость кода, когда переменная а (и/или) b постоянно изменяется, а последний аргумент для вложенной функции брался уже во время выполнения основной функции, потому что он постоянно одинаковый для любой запускаемой функции, внутри этой функции.

также я пробовал передавать параметры по другому:

    def foo(a,b,c): 
      return(a+b+c)

    def result(a,b,c,func):
      return(func(a,b,c))

    print(result(5,6,7, foo))

Но ведь у меня есть еще вторая возможная функция bar , которая тоже может запускаться и там другое количество параметров. А если будет еще третья функция или четвертая где будет еще больше параметров.

То есть, нужно добиться какой-то большей абстрактности при выполнении кода.

Очень надеюсь, что мое спутанное и косноязычное объяснение будет понято. Программирую неделю, пару лет назад решал несколько задач на php теперь вот понадобилось на пайтоне.


Ответы (1 шт):

Автор решения: Danis
def result(func, *args):
    return func(*args)
→ Ссылка