【问题标题】:Pass **kwargs through to inner function [duplicate]将 **kwargs 传递给内部函数 [重复]
【发布时间】:2017-06-08 21:19:59
【问题描述】:

我有一个函数

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)

但是,当我这样处理它时,我得到一个错误 clients is not defined.

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

【问题讨论】:

  • return do_something(url, **kwargs)
  • 你需要解包 kwargs**

标签: python


【解决方案1】:

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

do_something(url, **kwargs)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-04-09
    • 1970-01-01
    • 2018-04-28
    • 2018-09-26
    • 1970-01-01
    • 2021-12-27
    • 1970-01-01
    • 2016-03-13
    相关资源
    最近更新 更多