如果我们不确定往一个函数中传入多少参数,或者我们希望以元组(tuple)或者列表(list)的形式传参数的时候,我们可以使用args(单星号)。
如果我们不知道往函数中传递多少个关键词参数或者想传入字典的值作为关键词参数的时候我们可以使用*kwargs(双星号),args、kwargs两个标识符是约定俗成的用法。
概括如下:
*args:是不带关键字参数,tuple 和 list格式
**kwargs: 是带关键字参数和字典格式
代码辅助理解
def func(*args, ** kwargs):
print args,kwargs
d = {'s':1, 'r':2}
l = [1,2,3]
func(0, *l, c=2,**d)
#输出 (0,1, 2, 3) {'s': 1, 'r': 2, 'c': 2}