Python关键字参数
我有几层函数调用,传递一个关键字参数的公共字典:
def func1(**qwargs):
func2(**qwargs)
func3(**qwargs)
我想在一些后续函数调用中提供一些默认参数,如下所示:
def func1(**qwargs):
func2(arg = qwargs.get("arg", default), **qwargs)
func3(**qwargs)
这种方法的问题在于,如果arg在qwargs中,则会引发TypeError,并为“获取关键字参数的多个值”。
我不想将qwargs [“arg”]设置为默认值,因为然后func3在没有权限的情况下获得此参数。我可以制作qwargs的copy.copy并在副本中设置“arg”,但qwargs中可能有大型数据结构,我不想复制它们(也许copy.copy不会,只有copy.deepcopy ?)。
什么是pythonic事情在这里做?
没有找到相关结果
已邀请:
2 个回复
懊毁暗
,将原始单独留给以后调用
:
如果你想在
中设置
来覆盖
。否则(如果你想要
覆盖
中
的任何可能设置):
因为
的keyword-argument会覆盖位置参数中的值,如果有的话。
寿柬窟年
如果qwargs不包含很多便宜的密钥。 如果有可能你可以重写这些函数,将它们的args作为dict而不是多个args。