參數的預設值
函式的參數是允許有預設值的,這樣我們呼叫函式的時候,不必提供相等數量的參數:
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=1
,b
使用預設值 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=0
,c=2
,b
與 d
使用預設值:
add(0, 2) # 這樣會讓 Python 覺得要設 a 為 0,b 為 2
是做不到的!