版权声明:文章版权归本博客所以未经许可不能转载 https://blog.csdn.net/u011738045/article/details/82460217
缺省参数
def a(a,b=1): #此时b等于1就是缺省参数,也就是默认参数 print(a,b) #在调用时不传就使用默认值 #缺省参数只能写在其他形参后面 #b=1 就是缺省参数
也就是有传参数就用传的,没有就用默认值
注意:其他参数只能写在缺省参数前面
关键字参数也叫命名参数
def a(a, b=1, c=44): print(a, b, c) a(44, b=55, c=99) # 如果你想确定给那个形参传递,就要写上这个参数定义的形参名,这个参数叫命名参数 #比如上面 调用时候 b=55 就是命名参数
不定长参数
def a(a, b, *c): # c可以取任意名,一般用args表示 print(a, b) a(44, 11, 323, 43453, 3453, 35345, 3453, 345345) # 加上*号的形参叫做可变参数 #传递的实参个数大于形参个数那么剩下的参数都会放在可变形参中接收 #后面那个可变参数不传参数时候默认是个空元组 #当有多个形参可变参数只能放在最后一个位置
def b(a, b, t=4, *args, **c): # **参数传递的是以字典方式保存一般以kwargs命名, *传递的是元组方式保存一般以args命名 print(a, b, t, args, c) b(11, 22, 33, 99, 89, task=99, down=1313) # 实参传递是命名参数会保存到**参数,不是命名参数传到*参数,其他对应传
字典,元组参数拆包使用方法
def b(a, b, t=4, *args, **c): # **参数传递的是以字典方式保存一般以kwargs命名, *传递的是元组方式保存一般以args命名 print(a, b, t, args, c) s = (1, 2, 4) q = {"name": "tom", "age": 22} b(11, 22, 33, "sfsfs", *s, **q, k=1) # 字典,元组拆包,实参中传一个*s代表拆元组,**q代表拆字典