eg1: args,kwargs能打印嗎,打印出來結果是?spa
def func(*args,**kwargs): print(args) print(kwargs)
func(1,2,3,4,sex='ols',male='chuchu')
打印結果:元祖和字典it
解讀:args打印結果是元祖,kwargs打印結果字典。im
eg2: 位置參數,args接收參數順序是什麼?db
def func(a,b,c,*args): print(a) print(b) print(c) print(args,type(args)) func(1,2,'alex')
打印結果img
解讀:先打印位置參數,而後打印args,若是先放*args,後面a,b,c接收不到值而報錯。co
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)