为了账号安全,请及时绑定邮箱和手机立即绑定

一个函数可以成为Python中的kwargs部分之一吗?

一个函数可以成为Python中的kwargs部分之一吗?

梦里花落0921 2022-09-06 18:08:15
我想用它来减少我的一个函数中的参数数。问题是:一个或多个可能是函数本身。这就是我的意思: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


查看完整回答
反对 回复 2022-09-06
  • 1 回答
  • 0 关注
  • 157 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号