*args
表示的就是将实参中按照位置传值,多出来的值都给args,且以元组的方式呈现
def test(a,*args):
print(a,args)
test(1,2,3,4,6)
1 (2, 3, 4, 6)
**kwarg
表示的就是形参中按照关键字传值把多余的传值以字典的方式呈现
def test(a,**kwargs):
print(a,kwargs)
test(1,b=2,c=3)
1 {'b': 2, 'c': 3}
同时存在 args、*kwargs
def test(a,*args, **kwargs):
print(a,args,kwargs)
test(1,2,3,44,b=2,c=3)
1 (2, 3, 44) {'b': 2, 'c': 3}
注意点:参数arg、args、kwargs三个参数的位置必须是一定的。必须是(arg,args,**kwargs)这个顺序,否则程序会报错。