将**kwargs传递到内部函数

20

我有一个函数

def wrapper_function(url, **kwargs)
   def foo():
      if kwargs:
          return do_something(url, kwargs)
      else:
          return do_something(url)
< p > 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未定义

我该如何将关键字与参数原封不动地传递给内部函数?重要的是,该关键字也需要是可变的。


5
返回执行 do_something(url, **kwargs) 的结果。 - Klaus D.
2
你需要使用 ** 来解包 kwargs - Moses Koledoye
1个回答

37
当您的函数以foo(**kwargs)的形式传入kwargs时,您可以像访问Python dict一样访问关键字参数。同样地,要将dict作为多个关键字参数的形式传递给函数,只需再次将其传递为**kwargs即可。因此,在您的情况下,
do_something(url, **kwargs)

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接