如何传递 "extra" 参数来组合函数
How to pass "extra" parameter to compose function
我正在寻找一种组合函数的方法,可以选择传递 'extra' 参数。
示例:
from toolz import compose_left
def g(a, b, c) -> int:
return a + b + c
def f(a, b = 100) -> int:
return a + b
当我这样做时:
compose_left(g, f)(1,2,3)
我明白了:
106
很酷。
但是有没有办法在 compose 中定义函数 g 的参数 b 和 c?
像这样:
compose_left(g(b=2,c=3), f)(1)
现在我明白了:
TypeError: g() missing 1 required positional argument: 'a'
我正在寻找可以执行此操作的函数或程序包。
您正在寻找 functools.partial
。
compose_left(functools.partial(g, b=2, c=3), f)(1) # 106
我正在寻找一种组合函数的方法,可以选择传递 'extra' 参数。
示例:
from toolz import compose_left
def g(a, b, c) -> int:
return a + b + c
def f(a, b = 100) -> int:
return a + b
当我这样做时:
compose_left(g, f)(1,2,3)
我明白了:
106
很酷。
但是有没有办法在 compose 中定义函数 g 的参数 b 和 c?
像这样:
compose_left(g(b=2,c=3), f)(1)
现在我明白了:
TypeError: g() missing 1 required positional argument: 'a'
我正在寻找可以执行此操作的函数或程序包。
您正在寻找 functools.partial
。
compose_left(functools.partial(g, b=2, c=3), f)(1) # 106