可能重复:
What does ** (double star) and * (star) do for python parameters?
我正在阅读一些由ZSI为python生成的代码。有这样的一行
def verifyVehicle(self, request, **kw):
....
我想知道这个** kw neams是什么。这是一个字典类型吗?感谢
答案 0 :(得分:17)
它指的是传递给函数的所有关键字参数,这些参数不在方法定义中。例如:
>>> def foo(arg, **kwargs):
... print kwargs
...
>>> foo('a', b="2", c="3", bar="bar")
{'c': '3', 'b': '2', 'bar': 'bar'}
它类似于只使用一个星号,它指的是所有非关键字参数:
>>> def bar(arg, *args):
... print args
...
>>> bar(1, 2, 3, 'a', 'b')
(2, 3, 'a', 'b')
你可以将这些(和人们经常这样做)结合起来
>>> def foobar(*args, **kwargs):
... print args
... print kwargs
...
>>> foobar(1, 2, a='3', spam='eggs')
(1, 2)
{'a': '3', 'spam': 'eggs'}