參數的預設值

函式的參數是允許有預設值的,這樣我們呼叫函式的時候,不必提供相等數量的參數:

def add(a, b=1):
    return a + b

print(add(1, 2))
print(add(1))

在這裡,我們為參數 b 設定了一個預設值 1,這代表,如果我們只提供了 a 的值,b 會預設使用 1,所以:

  • add(1, 2) 的結果是 3: a=1, b=2,預設值沒有使用到
  • add(1)的結果是 2: a=1b使用預設值 1

我們可以讓多個參數使用預設值:

def add(a, b=1, c=2, d=3):
    return a + b + c + d

但要注意,在定義函式的時候,所有帶有預設值的參數都需要擺置在不帶有預設值參數的後面,下面是個非法的函式定義:

def add(a, b=1, c=2, d):
    return a + b + c + d

SyntaxError: non-default argument follows default argument

而且在使用位置呼叫時,我們無法跳著指定哪些人使用預設值。假設我們想要讓 a=0c=2bd 使用預設值:

add(0, 2) # 這樣會讓 Python 覺得要設 a 為 0,b 為 2

是做不到的!

results matching ""

    No results matching ""