呼叫函式

函式其實有兩種呼叫方式:

  • 位置呼叫
  • 關鍵字呼叫

位置呼叫

比如說上一小節的 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))

關鍵字呼叫

當使用關鍵字呼叫時,我們會確切地指出傳遞的對象,這樣做的好處是,我們不需要知道參數的確切順序,只要指定的名稱正確,便能正確的傳遞。

在本例中,看不出這樣做的好處,原因是對於這個簡單的加法運算而言,ab其實並沒有差異,我們考慮另一個函數:

def power(base, exp):
    return base ** exp

這是一個計算次方的函式,在這裡,baseexp 是有明顯差別的,power(2, 3)power(3, 2) 的結果大不相同,這個時候我們利用關鍵字呼叫便能減少錯誤使用的情況:

print power(base=2, exp=3)
print power(base=3, exp=2)

results matching ""

    No results matching ""