def test(x,y=2): print(x) print(y) test(1,3) #默认参数特点:调用函数的时候,默认参数非必传 #用途:1.默认值 def conn(host,post=3306): pass conn() ------------------------------------------------------------------------------- def test(x,y,z=2): print(x) print(y) print(z) test(1,2) test(1,2,3)#不论是否有默认参数,实参都不能比形参多 #实参数目不固定,形参怎么定义-->参数组 def test(*args): #实参数据不固定用"*"开头 print(args) test(1,2,3,4,5,5) test(*[1,2,3,4,5])# *args= *[1,2,3,4,5]--> args=tuple([1,2,3,4,5]) # *args:接收N个位置参数,转换成元组的方式 def test1(x,*args): print(x) print(args) test1(1,2,3,4,5,6,7) #**kwargs: 把N个关键字参数,转换成字典的方式 def test2(**kwargs): print(kwargs) print(kwargs['name']) print(kwargs['age']) test2(name='alex',age=8,sex='F') test2(**{'name':'alex','age':8}) #位置参数+字典 def test3(name,**kwargs): print(name) print(kwargs) test3('alex',**{'age':8,'sex':'F'}) test3('alex',age=8,sex='M') #默认参数+字典 def test4(name,age=18,**kwargs):#参数组在最后 print(name) print(age) print(kwargs) test4('alex',sex='m',hobby='tesla') test4('alex',sex='m',hobby='tesla',age=3) def test5(name,age=18,*args,**kwargs):#参数组在最后 print(name) print(age) print(args) print(kwargs) test5('alex',sex='m',hobby='tesla',age=3)