-
*args:非关键字参数,传入任意个不需要包含参数名的参数,参数实际以tuple形式传入
-
**kw:是关键字参数,传入任意个要带参数名的参数,参数实际以dict传入
例子
>>> def f(*args, **kw):
... print('args= ',args) #args接收任意个不带参数名的参数
... print('kw= ',kw) #kw接收任意个带参数名的参数
...
>>> f(1,2,3,a=4,b=5,c=6)
args= (1, 2, 3)
kw= {'a': 4, 'b': 5, 'c': 6}
- *args, **kw是习惯写法,也可以直接使用*,**而不加参数名,也可以自定义其他可变参数名
- python函数的参数顺序,没有默认值的固定参数>有默认值的固定参数>*args形式的可变参数>**kwargs形式的可变参数
参考文章: