我有一個輸入值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)。 –