在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中,双星后跟变量名是啥意思? [复制]的主要内容,如果未能解决你的问题,请参考以下文章

Angular 2:变量名是啥?意思是?

双星号 (**) 通配符是啥意思?

以_开头的变量名是啥意思?

Python 类型提示:Callable 后跟 TypeVar 是啥意思?

oracle 里面 :加上变量名是啥意思?

Python 中的“变量 //= 值”语法是啥意思? [复制]