我想用它来减少我的一个函数中的参数数。问题是:一个或多个可能是函数本身。这就是我的意思:functools.partialkwargsfrom functools import partialdef B(alpha, x, y): return alpha(x)*ydef alpha(x): return x+1g = partial(B, alpha=alpha, y=2)print(g(5))这将引发错误:类型错误:B() 为参数“alpha”获取了多个值是否可以按照提供的参数处理函数?如果没有,是否有解决方法或比?partialpartial
1 回答
陪伴而非守候
TA贡献1757条经验 获得超8个赞
partial本身不知道应该仅仅因为您为 指定了关键字参数,就应该将给定的位置参数分配给 。如果要成为特定函数,请将该函数作为位置参数传递给 。xalphaalphapartial
>>> g = partial(B, alpha, y=2)
>>> g(5)
12
g等效于
def g(x):
return alpha(x) * 2 # == (x + 1) * 2
或者,您可以使用 的原始定义 ,但请确保也作为关键字参数传递,避免任何其他位置参数。g5
>>> g = partial(B, alpha=alpha, y=2)
>>> g(x=5)
12
这是有效的,因为在 和 之间,您已经为所有必需参数提供了关键字参数,从而无需任何位置参数。gpartial
添加回答
举报
0/150
提交
取消
