Python 默認參數值,對於一些函數來說,你可能為希望使一些參數可選並使用默認的值,以避免用戶不想為他們提供值的情況。默認參數值可以有效幫助解決這一情況。你可以通過在函數定義時附加一個賦值運算符(=
)來為參數指定默認參數值。
要注意到,默認參數值應該是常數。更確切地說,默認參數值應該是不可變的——這將在Python教程后面的章節中予以更詳細的解釋。就目前來說,只要記住就行了。
案例(保存為 function_default.py
):
def say(message, times=1): print(message * times) say('Hello') say('World', 5)
輸出:
$ python function_default.py
Hello
WorldWorldWorldWorldWorld
它是如何工作的
名為 say
的python函數用以按照給定的次數打印一串字符串。如果我們沒有提供一個數值,則將按照默認設置,只打印一次字符串。我們通過為參數 times
指定默認參數值 1
來實現這一點。
在第一次使用 say
時,我們只提供字符串因而函數只會將這個字符串打印一次。在第二次使用 say
時,我們既提供了字符串,同時也提供了一個參數 5
,聲明我們希望說(Say)這個字符串五次。
注意
只有那些位於參數列表末尾的參數才能被賦予默認參數值,意即在函數的參數列表中擁有默認參數值的參數不能位於沒有默認參數值的參數之前。
這是因為值是按參數所處的位置依次分配的。舉例來說,
def func(a, b=5)
是有效的,但def func(a=5, b)
是無效的。