Функция Python с несколькими аргументами

#python #function #parentheses #chain #unary-function

#python #функция #круглые скобки #цепочка #унарная функция

Вопрос:

Я наткнулся на этот вопрос Codewars:

Ваша задача — написать функцию более высокого порядка для объединения в цепочку списка унарных функций. Другими словами, она должна возвращать функцию, которая выполняет сгиб влево для заданных функций.

chained([a,b,c,d])(input)

Должна давать тот же результат, что и

d(c(b(a(input))))

На самом деле мне все равно, каков ответ на проблему, я могу получить к нему доступ на сайте. То, что мне действительно нужно объяснить, — это первая функция, «chained». Я никогда не видел подобную функцию с 2 наборами аргументов в отдельных скобках, поэтому я полагаю, что интерпретирую ее неправильно.. что это значит? Спасибо за помощь

Ответ №1:

Это не функция с двумя наборами параметров, а функция, которая возвращает другую функцию, выполняя функции, заданные в качестве параметров, одну за другой.

Может быть, будет понятнее, если вы разделите строку на две строки:

 f = chained([a,b,c,d]) # call `chained` with functions as parameters
f(input)               # call result of `chained`, which is another function
  

Ответ №2:

Как указано в вопросе, chained это функция более высокого порядка — она примет один аргумент — список функций и вернет / выдаст функцию. Эта функция вызывается путем передачи одного аргумента — в данном случае другой функции input .