我正在使用部分函数时,无法执行以下代码
from functools import partial
def f(a, b, c, d):
return 100 * a + 50 *b + 25 * c + d
g = partial(f, b=2)
print g(2, 4, 5)
答案 0 :(得分:1)
除了last之外,您不能使用位置参数来做偏。
如果需要部分划分b
,则需要按名称传递c
和d
:
g = partial(f, b=2)
print(g(2, c=4, d=5))
或者使用lambda
(或包装器函数)如果您需要传递位置ARGS
答案 1 :(得分:0)
我们可以调用g()
来检查功能,然后您会得到一个信息:
TypeError: f() missing 3 required positional arguments: 'a', 'c', and 'd'
现在,我们知道有一个参数b
,我们可以指定参数c
和d
:
g(2, c=4, d=5)
405