我有几层函数调用,传递一个通用的关键字参数字典:
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事情是什么?