2分鐘瞭解Python的5種傳參姿勢

YOUNGmaxer發表於2019-02-16

關於傳參

稍微總結一下 Python 函式傳遞引數的方式。

位置實參

實參和形參的位置是關聯對應的。一個實參對應一個相應位置的形參。

def func(a, b):
    print(a, b)

>>> func(1, 2)
1 2
>>> func(2, 1)
2 1

關鍵字實參

實參以 key=value 的形式傳遞,因為已經指明瞭將 value 傳給哪個引數,所以位置順序就無關緊要了。

def func(a, b):
    print(a, b)

>>> func(a=1, b=2)
1 2
>>> func(b=2, a=1)
1 2

預設值

可以給形參指定預設值,當沒有提供實參的時候,就會使用預設值。

利用這個特性可以實現可選引數

def func(a, b=2):
    print(a, b)

>>> func(1)
1 2
>>> func(1, 3)
1 3

傳遞任意數量的實參

使用形參 *topping 可以使函式能夠傳遞任意數量的實參。

傳遞的引數會被封裝到一個元組中

def func(*args):
    print(args)
    
>>> func(`a`, `b`, `c`)
(`a`, `b`, `c`)

傳遞任意數量的關鍵字實參

使用形參 **kwargs 可以使函式能夠傳遞數量的關鍵字實參

傳遞的引數會被封裝成鍵值對,即字典

kwargs => keyword args

def func(**kwargs):
    print(kwargs)
    
>>> func(a=1, b=2, c=3)
{`a`: 1, `b`: 2, `c`: 3}

參考

  • 《Python程式設計從入門到實踐》

相關文章