在python中,双星后跟变量名是啥意思? [复制]
Posted
技术标签:
【中文标题】在python中,双星后跟变量名是啥意思? [复制]【英文标题】:what does double star followed by variable name mean in python? [duplicate]在python中,双星后跟变量名是什么意思? [复制] 【发布时间】:2012-04-29 09:51:33 【问题描述】:可能重复:What does ** (double star) and * (star) do for python parameters?
我正在阅读一些由 ZSI 为 python 生成的代码。有这样一行
def verifyVehicle(self, request, **kw):
....
我想知道这个 **kw neams 是做什么的。这是 neam 字典类型吗?谢谢
【问题讨论】:
【参考方案1】:它指的是传递给函数但不在方法定义中的所有关键字参数。例如:
>>> 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'
【讨论】:
这就解释了一切!谢谢以上是关于在python中,双星后跟变量名是啥意思? [复制]的主要内容,如果未能解决你的问题,请参考以下文章