1.*args:表示接收所有位置参数的动态传参
2.**kwargs:表示接收所有关键字的动态参数
1.这个是:*args,所有位置的动态参数,返回的是一个元组(入下右图),如下例子
2.**kwargs:关键字的动态传参,返回的是字典
3.形参参数有几种
1.位置参数
2.*args动态参数
3.默认值参数
4.关键字参数
并且函数设置参数时,设置参数的顺序需要遵循:位置参数 > *args动态参数 > 默认值参数 > **kwargs关键字参数
其中:*args>默认值参数,因为*args如果在默认值后面,则这个默认值永远也取不到
def chi2(a,b,*args,c='哈哈哈',**kwargs):
print(a,b,args,c,kwargs)
chi2(1,2,3,4,5,x='1')
输出:1 2 (3, 4, 5) 哈哈哈 {'x': '1'}
#下面这个,永远不会有默认值:哈哈哈
def chi(a,b,c='哈哈哈',*args,**kwargs):
print(a,b,c,args,kwargs)
chi(1,2,3,4,5,x='1')
输出:1 2 3 (4, 5) {'x': '1'}