在Python中,双星号后跟变量名表示什么?

8
1个回答

21

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

>>> 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'}

那解释了一切!谢谢 - ACZINT

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