我有一个输入值val
和功能清单,可在顺序应用Python函数列表:应用以优雅
funcs = [f1, f2, f3, ..., fn]
如何优雅地应用,而不是写
fn(... (f3(f2(f1(val))) ...)
也不用于循环:
tmp = val
for f in funcs:
tmp = f(tmp)
感谢Martijn的真棒回答。有一些阅读我发现:https://mathieularose.com/function-composition-in-python/。
完美的答案,你可以使用它们!我喜欢OCaml的'List.fold_left',而在Python中我们有'functools.reduce()':) – Viet
@Viet:参见[Wikipedia的各种编程语言中的* fold *](https://en.wikipedia.org /维基/ Fold_(更高order_function)#Folds_in_various_languages)。 –