呼叫函式
函式其實有兩種呼叫方式:
- 位置呼叫
- 關鍵字呼叫
位置呼叫
比如說上一小節的 add
函數採用 add(1, 2)
就是使用位置呼叫,我們依照參數的位置來傳遞資料,因為 def add(a, b):
,所以 a
會設定為 1,b
會設定為 2:
add(1, 2)
| |
V V
def add(a, b):
其實我們也可以用關鍵字呼叫,下面兩次呼叫的結果是相同的:
print(add(a=1, b=2))
print(add(b=2, a=1))
關鍵字呼叫
當使用關鍵字呼叫時,我們會確切地指出傳遞的對象,這樣做的好處是,我們不需要知道參數的確切順序,只要指定的名稱正確,便能正確的傳遞。
在本例中,看不出這樣做的好處,原因是對於這個簡單的加法運算而言,a
與 b
其實並沒有差異,我們考慮另一個函數:
def power(base, exp):
return base ** exp
這是一個計算次方的函式,在這裡,base
和 exp
是有明顯差別的,power(2, 3)
和 power(3, 2)
的結果大不相同,這個時候我們利用關鍵字呼叫便能減少錯誤使用的情況:
print power(base=2, exp=3)
print power(base=3, exp=2)