Python语言的模块里,函数的参数列表里经常可以看到这两个参数,形式如下:
def function_name(*argds,**kwargs):
return 0
星号的作用:一个*的作用是将tuple或者list中的元素进行unpack,分开传入,作为多个参数;两个*的作用是把dict类型的数据作为参数传入。
kwargs是keyword argument的缩写,args就是argument。在Python中,有两种参数,一种叫位置参数(position argument),一种叫关键词参数(keyword argument),关键词参数只需要用keyword=somekey的方法即可传参,而位置参数只能由参数位置决定。因此位置参数一定要在前面,否则关键词参数数量的变化(比如有些kwargs有默认值因此没有传参或者在后面传参),都会使位置无法判断,故*args在**kwargs前面。
下面是一个例子来说明这两个参数的作用(可变参数)
def test_function(a,b,*args,**kwargs):
print a
print b
print args
print kwargs
test_function(0,1,2,3,index1=11,index2=12)
0
1
(2,3)
{'index1':11,'index2':12}
参考链接:https://blog.youkuaiyun.com/edogawachia/article/details/80588858