關於傳參
稍微總結一下 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程式設計從入門到實踐》