函數命名空間實例解讀

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)
相關文章
相關標籤/搜索