| 導航:起始頁 > Dive Into Python > 自省的威力 > 使用可選參數和命名參數 | << >> | ||||
深入 Python :Dive Into Python 中文版Python 從新手到專家 [Dip_5.4b_CPyUG_Release] |
|||||
Python 允許函數參數有缺省值;如果調用函數時不使用參數,參數將獲得它的缺省值。此外,通過使用命名參數還可以以任意順序指定參數。SQL Server Transact/SQL 中的存儲過程也可以做到這些;如果你是腳本高手,你可以略過這部分。
info 函數就是這樣一個例子,它有兩個可選參數。
def info(object, spacing=10, collapse=1):spacing 和 collapse 是可選參數,因為它們已經定義了缺省值。object 是必備參數,因為它沒有指定缺省值。如果調用 info 時只指定一個參數,那么 spacing 缺省為 10 ,collapse 缺省為 1。如果調用 info 時指定兩個參數,collapse 依然默認為 1。
假如你要指定 collapse 的值,但是又想要接受 spacing 的缺省值。在絕大部分語言中,你可能運氣就不太好了,因為你需要使用三個參數來調用函數,這勢必要重新指定 spacing 的值。但是在 Python 中,參數可以通過名稱以任意順序指定。
info(odbchelper)info(odbchelper, 12)
info(odbchelper, collapse=0)
info(spacing=15, object=odbchelper)
這些看上去非常累,除非你意識到參數不過是一個字典。“通常” 不使用參數名稱的函數調用只是一個簡寫的形式,Python 按照函數聲明中定義的的參數順序將參數值和參數名稱匹配起來。大部分時間,你會使用“通常”方式調用函數,但是如果你需要,總是可以提供附加的靈活性。
| 調用函數時唯一必須做的事情就是為每一個必備參數指定值 (以某種方式);以何種具體的方式和順序都取決于你。 | |
<< 自省的威力 |
| 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | |
使用 type、str、dir 和其它內置函數 >> |