函数的参数
1,定义
-
形参:函数的定义的括号里是形参
默认参数(a,b)
def func(a,b,c=2) 函数体 func()
优先级,位置>默认
位置参数(c=2)
-
实参:函数的调用括号里是实参
- 位置参数
- 关键字参数
- 混合参数
传参:将实参传递给形参的过程
位置传参时,形参和实参必须一一对应
def open(app): ##形参(app),函数定义的括号括号里是形参 print('打开手机') print(f'打开{app}') open('微信','QQ') ##实参('微信','QQ')
函数的动态参数
-
动态位置参数
*args:在参数位置*/*/表示接受任意位置函数
-
def func(a,b,*args): ######################此处的*:定义聚合 print(a,b,args) print(func(1,2,3,4,5,6)) ######################### 1 2 (3, 4, 5, 6) None
def func(a,b,*args): print(a,b,*args) ####################此处的*:定义散开 print(func(1,2,3,4,5,6)) ######################### 1 2 3 4 5 6 None
位置参数 >动态位置参数(*args) > 默认参数 > 动态关键字参数(**kwargs)
def func(a,b,*args,c=7,d=8): print(a,b,args,c,d) print(func(1,2,3,4,5,6)) ########################### 1 2 (3, 4, 5, 6) 7 8 None
动态关键字参数
**kwargs ,参数位置接受任意动态的关键字参数
def func(a,b,**kwargs): print(a,b,**kwargs) print(func(1,2,c=3,d=4)) ########################## 1 2 {'c': 3, 'd': 4} ###kwargs 字典 None
###位置参数 >动态位置参数(*args) > 默认参数 > 动态关键字参数(**kwargs)### def func(a,b,*args,c=1,=d=2,**kwargs): print(a,b,args,c,d,kwargs) print(func(1,2,3,4,5,c=4,d=6,e=nihao,f=hello)) ############################################## 1 2 (3, 4, 5) 9 6 {'e': 'nihao', 'f': 'hello'} None
万能传参
def func(*agrs,**kwargs): # 万能传参 print(agrs,kwargs) func(1,2,3,4,5,6,7,8,a=1,b=2,c=3) ######################################### (1, 2, 3, 4, 5, 6, 7, 8) {'a': 1, 'b': 2, 'c': 3}
-
参数总结
- 万能传参:动态位置参数,动态关键字参数
- 位置传参数,动态位置参数
- 动态位置参数,关键字参数,动态关键字参数