Compose
标题:组合函数 类型:片段 语言:Python 标签:[函数] 封面:tram-car-2 修改日期:2020-11-02
执行从右到左的函数组合。
- 使用
functools.reduce()
执行从右到左的函数组合。 - 最后(最右边)的函数可以接受一个或多个参数;其余的函数必须是一元的。
from functools import reduce
def compose(*fns):
return reduce(lambda f, g: lambda *args: f(g(*args)), fns)
add5 = lambda x: x + 5
multiply = lambda x, y: x * y
multiply_and_add_5 = compose(add5, multiply)
multiply_and_add_5(5, 2) # 15