python_53_函数补充

def test1(x,y=2):
    print(x,y)
test1(1)
test1(1,3)
test1(1,y=4)
#默认参数特点:调用函数的时候,默认参数非必须传递,默认参数放在后边
#用途:默认(安装)值

def test2(*args):#可变长参数(参数组),args被视为一个元组。
    print(args)
test2(1,4,5,9)
a=test2(*[2,4,6,8])   #  a=tuple([2,4,6,8])
#*args接收的是位置参数,不是关键字参数,转换成元组形式
def test3(a,*args):#参数组一定要往后放
    print(a)
    print(args)
test3(111,2,3,4,5,6,7)

def test4(**kwargs):#可变长参数(参数组),kwargs被视为一个字典,接收N个关键字参数,转换成字典的形式
    print(kwargs)
    print(kwargs['name'])
    print(kwargs['age'])
    # print(kwargs['sex'])
test4(name='猪小芳',age=23,sex='妞儿')
test4(**{'name':'猪小芳','age':23})

def test5(name,**kwargs):
    print(name)
    print(kwargs)
test5('梁梁',age=30,sex='male')

def test6(name,age=40,**kwargs):     #参数组一定要往后放
    print(name,age,kwargs)
test6('小短腿七戒')
test6('小短腿七戒',salary='18k',hobby='妞儿')
test6('小短腿七戒',12,hobby='妞儿',salary='18k')
test6('小短腿七戒',age=50,hobby='妞儿',salary='18k')
test6('小短腿七戒',hobby='妞儿',salary='18k',age=88)
#test6('小短腿七戒',44,hobby='妞儿',salary='18k',age=88)  #出错,给age赋多个值

def test7(name,age=40,*args,**kwargs):     #参数组一定要往后放
    print(name,age,args,kwargs)
test7('八戒',99)
test7('八戒',99,hobby='妞儿',salary='18k')
test7('八戒',99,'gege','meimei',hobby='妞儿',salary='18k')
#test7('八戒',99,hobby='妞儿',salary='18k','gege','meimei')#错误原因,位置参数一定要写在关键字参数前边

  

def f1(*args):
    print(args,type(args))
f1(11)
f1(11,22,33,44)
f1([11,22,33,44,'qizhiguang'])
f1(*[11,22,33,44,'qizhiguang'])
f1('qizhiguang')
f1(*'qizhiguang')

def f2(**kwargs):
    print(kwargs,type(kwargs))
f2(n1='qizhiguang',n2=18)
dic={'k1':'v1','k2':'v2'}
f2(kk=dic)
f2(**dic)

  

原文地址:https://www.cnblogs.com/tianqizhi/p/8343193.html