Python 函数名之前的可变参数?

2 投票
1 回答
592 浏览
提问于 2025-04-15 14:47

我在客户的代码里写Python时,碰到了一行看起来像这样的代码(变量名已经改了,以保护无辜者):

reply = function1(a=foo, **function2(bar, b=baz))

通常情况下,**在参数列表中是用来收集剩下的关键字参数的,但它放在函数名字前面有什么用呢?

1 个回答

11

我想说,这其实就是在调用一个函数,这个函数会返回一个像字典一样的对象。因此,那个星号(*)的作用就是把返回的字典转换成函数1所需要的关键字参数,就像平常一样。

撰写回答