Как обратиться к функции, если у нас есть количество ее параметров (которое может меняться) функции и список параметров?

К примеру, у нас есть функция и переменная, показывающая количество параметров этой функции

def f(a, b, c):
  return(a + b + c)
k = 3

Также нам дан список параметров

a = [3, 4, 5]

Мы не знаем количество параметров функции (k), также мы не знаем, что возвращает сама функция (то есть не можем просто сложить все значения списка a, т.к. функция может быть любая)

Как можно вызвать функцию f(3, 4, 5)?

P.S. Нам нельзя просто написать f(a[0], a[1], a[2]), т.к. не факт, что k (количество параметров) равно 3


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

Автор решения: Andrey Maslov

Как указали в комментариях, можно использовать *args или kwargs

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

var_list = [3, 4, 5]
var_dict = {
    'a': 3,
    'b': 4,
    'c': 5,
}

в итоге Вы можете вызывать Вашу метод таким образом

  call_from_list = f(*var_list)
  call_from_dict = f(**var_dict)
→ Ссылка