访问部分函数时我的代码出错

时间:2019-02-02 09:11:33

标签: python

我正在使用部分函数时,无法执行以下代码

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)

2 个答案:

答案 0 :(得分:1)

除了last之外,您不能使用位置参数来做偏。

如果需要部分划分b,则需要按名称传递cd

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,我们可以指定参数cd

g(2, c=4, d=5)
405