eg1: args,kwargs能打印吗,打印出来结果是?it
def func(*args,**kwargs): print(args) print(kwargs)
func(1,2,3,4,sex='ols',male='chuchu')
打印结果:元祖和字典im
解读:args打印结果是元祖,kwargs打印结果字典。img
eg2: 位置参数,args接收参数顺序是什么?字典
def func(a,b,c,*args): print(a) print(b) print(c) print(args,type(args)) func(1,2,'alex')
打印结果参数
解读:先打印位置参数,而后打印args,若是先放*args,后面a,b,c接收不到值而报错。
eg3 位置参数,args,默认参数的接收参数顺序是什么?
def func(a,b,c,sex='nan',*args): print(a) print(b) print(c) print(sex) print(args,type(args)) func(1,2,'alex','wusir','ritian')
打印结果
解读:先位置,而后args,最后是默认参数,不然就是默认参数被覆盖,像上图一个,sex=‘nan’直接被覆盖,打印不出来。
位置参数,*args,默认参数,**kwargs
魔法运算:
def func(*args): print(args) li = [1,2,3] l2 = [4,5,6] func(li) #输出结果:([1, 2, 3],) func(*li) #输出结果:(1, 2, 3) func(*li,l2) #输出结果:(1, 2, 3, [4, 5, 6]) func(*li,*l2) #输出结果:(1, 2, 3, 4, 5, 6)