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)