将包装函数定义中收到的 **kwargs 传递给封闭(即包装)函数调用的参数

2024-01-17

哦,亲爱的,我希望我的标题是正确的。 :)

如何将提供的 **kwargs 传递给包装函数 定义,到另一个(封闭的)函数call它包裹着。例如:

def wrapped_func(**kwargs):
   # Do some preparation stuff here.
   func('/path/to/file.csv', comma_separated_key=value_injected_here)
   # Do some other stuff.

例如,这个调用:

wrapped_func(error_bad_lines=True, sep=':', skip_footer=0, ...)

应该会导致这样的结果:

func('/path/to/file.csv', error_bad_lines=True, sep=':', skip_footer=0, ...)

在过去的几个小时里,我尝试了多种方法,但每种方法都暴露了类型保留漏洞(对于值)。我以前没有使用过这种特殊的包装模式,想知道社区是否可以提供一些帮助。先感谢您。


**kwargs是一个字典,这意味着您可以使用 double splat (**) to 将其解压为关键字参数列表 https://docs.python.org/2/tutorial/controlflow.html#unpacking-argument-lists。所以你的包装函数可能是这样的:

def wrapped_func(**kwargs):
   # Do some preparation stuff here.
   func('/path/to/file.csv', **kwargs)
   # Do some other stuff.
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

将包装函数定义中收到的 **kwargs 传递给封闭(即包装)函数调用的参数 的相关文章

随机推荐