将** kwargs传递给内部函数

时间:2017-06-08 13:08:31

标签: 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)

然而,当我这样接近时,我收到一个错误 clients is not defined

如何将params与关键字完全一样传递给内部函数?重要的是,该关键字也需要变量。

1 个答案:

答案 0 :(得分:7)

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

do_something(url, **kwargs)