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

标签 python function keyword-argument

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

如何将提供给包装函数 定义 的**kwargs 传递给它包装的另一个(封闭的)函数调用 .例如:

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 是一个字典,这意味着您可以使用双拼音 (**) 到 unpack it as a list of keyword arguments .所以你的包装函数可能是这样的:

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

关于python - 将包装函数定义中接收到的 **kwargs 传递给封闭(即包装)函数调用的参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36610950/

相关文章:

python - 打印使用 Python 的 PIL 打开的图像的 md5 哈希

python - 从具有任意长度值的字典创建数据帧(使用回收键作为列值)

python - 如何将 sys.argv[n] 传递给 Python 中的函数

javascript - Toggle Google map API v3 中的图像叠加

function - 无法在progress4gl上使用函数

Python 继承和关键字参数

python - 传递 kwarg 失败于 2.7

python - 是否可以像在 GUI 中一样通过 Excel 公式填写整个列? #gspread

python - "Unexpected"类型错误 : unexpected keyword

python - SCons 中错误的 D 依赖逻辑