天天看點

參數解包 | Python從入門到精通:高階篇之六

不定長參數 | Python從入門到精通:高階篇之五

參數解包(拆包)

定義一個函數

def fn4(a,b,c):
    print('a =',a)
    print('b =',b)
    print('c =',c)

fn4(1,2,3)           

執行結果:

參數解包 | Python從入門到精通:高階篇之六

建立一個元組

t = (10,20,30)           

此時我們想要把t中的元素傳進函數,應該怎麼做呢?

def fn4(a,b,c):
    print('a =',a)
    print('b =',b)
    print('c =',c)

t = (10,20,30)
fn4(t)           
參數解包 | Python從入門到精通:高階篇之六

此時可以發現,程式出錯了,我們不能這樣去chu傳遞,這樣隻傳遞了一個參數,我們可以做如下的修改:

fn4(t[0],t[1],t[2])           
參數解包 | Python從入門到精通:高階篇之六

這樣我們就可以實作了,但是我們會發現,有點繁瑣,如果參數過多,步驟會一直重複,我們希望可以直接把元組的參數指派給形參。

fn4(*t)            
參數解包 | Python從入門到精通:高階篇之六

傳遞實參時,也可以在序列類型的參數前添加星号,這樣他會自動将序列中的元素依次作為參數傳遞。但是需要注意的是,這裡要求序列中元素的個數必須和形參的個數的一緻,否則程式會出錯。

def fn4(a,b,c):
    print('a =',a)
    print('b =',b)
    print('c =',c)

t = (10,20,30,40)
fn4(*t)           
參數解包 | Python從入門到精通:高階篇之六

建立一個字典

将字典裡的項進行參數傳遞。通過

\*\*

來對一個字典進行解包操作

def fn4(a,b,c):
    print('a =',a)
    print('b =',b)
    print('c =',c)

d = {'a':100,'b':200,'c':300}
fn4(**d)           
參數解包 | Python從入門到精通:高階篇之六

以上就是我們對于參數的介紹,之後會通過練習來鞏固這部分内容。

配套視訊課程,點選這裡檢視

擷取更多資源請訂閱

Python學習站