Python 多参数​​函数

Python function with multiple arguments

我遇到了这个 Codewars 问题:

Your task is to write a higher order function for chaining together a list of unary functions. In other words, it should return a function that does a left fold on the given functions.

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

Should yield the same result as

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

我真的不在乎问题的答案是什么,我可以在站点上访问它。我真正需要向我解释的是第一个功能,“链接”。我从来没有见过像这样的函数,在单独的括号中有 2 组参数,所以我想我对它的解释不正确……这是什么意思?感谢帮助

不是有两组参数的函数,而是returns 另一个函数,一个接一个执行作为参数给定的函数。

也许把一行分成两行会更清楚:

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

如问题中所述,chained 是一个 higher order function - 它需要一个参数 - 函数列表,并且 return/yield 是一个函数。通过传递一个参数调用该函数 - 另一个函数,在本例中为 input.