函数的参数:定义在函数后面的括号中
定义的参数叫形参
调用函数时传入的数据叫实参
一、实参分类:
1、位置参数:通过位置按顺序传递
2、关键字参数:通过参数名指定参数进行传递
二、形参分类:
1、必备参数/必须参数:定义几个就要传几个
2、默认参数(缺省参数):可传可不传,不传的情况下使用默认值,默认参数必须在最后面
3、不定长参数:*args:接收0个或多个位置参数
**kwargs: 接收0个或多个关键字参数
print(args)是元组形式
print(kwargs)是字典形式
def add_number(a,b,c):
return a+b+c
一、1:res=add_number(95,12,10) 位置传参/位置参数
一、2:res=add_number(b=12,a=95,c=10) 关键字传参/关键字参数
注:res=add_number(95,c=10,b=12) 混合使用时,位置参数写前面
二、1:def func2(a,b,c): a,b,c都是必备参数,调用时要传入
print(a,b,c)
二、2:def func2(a,b,c=9): c就是默认参数,调用时可传可不传
print(a,b,c)
注:默认参数必须写在最后面,若def func2(a=9,b,c):,会报错
二、3:def func3(a,b,c,*args,**kwargs): 不定长参数
print(a,b,c)
print(args)
print(kwargs)
func3(1,2,3,11,22) 11和22会被*args接收,元组形式
func3(1,2,3,d=11,e=22) d=11,e=22**kwargs接收,字典形式
得到结果:1 2 3
(11,22)
{}
1 2 3
()
{‘d’:11,‘e’:22}
2、函数参数的拆包在函数调用阶段:
*可以用来对元组或列表拆包
**可以用来对字典拆包
tu=(1,2,3,4) dic={‘a’:11,‘b’:22,‘c’:33,‘d’:44} def func(a,b,c,d): print(a,b,c,d) func(*tu) func(**dic) 得到结果为:1 2 3 4 11 22 33 44