python - 将 **kwargs 传递给内部函数

标签 python

<分区>

我有一个函数

def wrapper_function(url, **kwargs)
   def foo():
      if kwargs:
          return do_something(url, kwargs)
      else:
          return do_something(url)

do_something() 函数可以有一个或多个参数。

当我调用 wrapper_function() 时,想像这样调用它

wrapper_function('www.bar.com')

wrapper_function('www.bar.com', selected_clients=clients)

这样do_something('www.bar.com', selected_clients=clients)

但是,当我这样处理时,我得到了一个错误 未定义客户端

我如何才能像使用关键字一样将参数传递给内部函数?重要的是,该关键字也需要可变。

最佳答案

当您的函数以 foo(**kwargs) 形式接收 kwargs 时,您可以像访问 python 字典一样访问关键字参数。同样,要以几个关键字参数的形式将 dict 传递给函数,只需再次将其作为 **kwargs 传递即可。所以,在你的情况下,

do_something(url, **kwargs)

关于python - 将 **kwargs 传递给内部函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44436657/

相关文章:

python - 有点复杂的列表理解

python - 从一系列数字生成二进制数据数组

python - subprocess.check_output 返回码

python - 将函数应用于数组的每一对行

python - 按 ID 分组和完整时间序列 Pandas

python - : "file.readlines()", "list(file)"和 "file.read().splitlines(True)"之间有区别吗?

Windows Function App 不支持 Python 项目。部署到 Linux 函数应用程序

python - 在每行中查找具有重复值的列并获取相关值

python - 没有 fit() 使用 keras 和 tf 的 Tensorboard

python - 如何在pygame中检测Sprite和Rect之间的碰撞