#!usrinenvpython
# -*- coding:utf - 8 -*9
'''def test(x,y):
print(x)
print(y)
test(y=2,x=1) #关键参数与形参函数顺序无关
输出结果为:1 2
test(1,2) #位置参数与形参一一对应
输出结果:1 2
test(3,y=2)
输出结果:3 2
#定义函数参数的基本原则是:先位置参数,默认参数,包裹位置,包裹关键字(定义和调用都应遵循) '''
def test(x,y=2): #位置参数在前x,默认参数在后y
print(x)
print(y)
test(1,3) #默认参数特点:调用函数,默认参数非必须传递
#用途:1.默认安装值,2.连接数据库的端口号
def test(*args):
print(args)
test(1,2,3,4,5,5)
test(*[1,2,4,5,5]) #传进的有参数都会被args变量收集,根据传进参数的位置合并为一个元组(tuple),args是元组类型,以元组的形式输出结果
def test2(**kwargs):
print(kwargs)
test2(name='alex',age=8,sex='F') #传进的所有参数都会被kwargs变量收集,以字典的形式输出结果
#*kwargs跟位置参数结合使用
def test3(name,**kwargs):
print(name)
print(kwargs)
test3('alex',age=18,sex='F')
输出结果:先输出alex,后输出字典
#位置参数、默认参数和**kwargs混合使用
def test4(name,age=18,**kwargs):
print(name)
print(age)
print(kwargs)
test4('alex',sex='m',hoby='tesd',age=3)
输出结果:alex
3
{sex='m',hoby='tesla'}