在Python中,双星后跟变量名是什么意思?

ACZ*_*INT 8 python zsi

可能重复:
**(双星)和*(星)对python参数有什么作用?

我正在阅读一些由ZSI为python生成的代码.有一条这样的线

def verifyVehicle(self, request, **kw): ....

我想知道这个**kw neams是什么.这是一个字典类型吗?谢谢

Nol*_*lty 17

它指的是传递给函数的所有关键字参数,这些参数不在方法定义中.例如:

>>> def foo(arg, **kwargs):
...     print kwargs
... 
>>> foo('a', b="2", c="3", bar="bar")
{'c': '3', 'b': '2', 'bar': 'bar'}
Run Code Online (Sandbox Code Playgroud)

它类似于只使用一个星号,它指的是所有非关键字参数:

>>> def bar(arg, *args):
...     print args
... 
>>> bar(1, 2, 3, 'a', 'b')
(2, 3, 'a', 'b')
Run Code Online (Sandbox Code Playgroud)

你可以结合这些(人们经常这样做)

>>> def foobar(*args, **kwargs):
...     print args
...     print kwargs
... 
>>> foobar(1, 2, a='3', spam='eggs')
(1, 2)
{'a': '3', 'spam': 'eggs'}
Run Code Online (Sandbox Code Playgroud)