*args:表示按照位置传参,多出来的值都给args,且参数是元组的形式
def foo(x,*args):
print(x)
print(args)
foo(1,2,3)#1传给了x,多出来的2,3给了args
输出
1
(2, 3)
**kwargs:表示的就是形参中按照关键字传值把多余的传值以字典的方式呈现)
def foo(x,**kwargs):
print(x)
print(kwargs)
foo(1,a=2,b=3)#将a=2,b=3以字典的方式给kwargs
输出
1
{'a': 2, 'b': 3}
def
foo(x,
*
args,
*
*
kwargs): 正确
def
foo(x,
*
*
kwargs,
*
args): 报错