目前爲止,咱們使用函數時所用的參數都是位置參數,即傳入函數的實際參數必須與形式參數的數量和位置對應。而本節將介紹的關鍵字參數,則能夠避免牢記參數位置的麻煩,令函數的調用和參數傳遞更加靈活方便。
關鍵字參數是指使用形式參數的名字來肯定輸入的參數值。經過此方式指定函數實參時,再也不須要與形參的位置徹底一致,只要將參數名寫正確便可。python
所以,Python 函數的參數名應該具備更好的語義,這樣程序能夠馬上明確傳入函數的每一個參數的含義。函數
例如以下程序:spa
# 定義一個函數 def girth(width , height): print("width: ", width) print("height: ", height) return 2 * (width + height) # 傳統調用函數的方式,根據位置傳入參數 print(girth(3.5, 4.8)) # 根據關鍵字參數來傳入參數 print(girth(width = 3.5, height = 4.8)) # 使用關鍵字參數時可交換位置 print(girth(height = 4.8, width = 3.5)) # 部分使用關鍵字參數,部分使用位置參數 print(girth(3.5, height = 4.8))
上面程序定義了一個簡單的 girth() 函數,該函數包含 width、height 兩個參數,該函數與前面定義的函數並無任何區別。
接下來在調用該函數時,既可以使用傳統的根據位置參數來調用(如上面程序中第 7 行代碼所示),也可根據關鍵字參數來調用(如上面程序中第 9 行代碼所示),在使用關鍵字參數調用時可交換參數的位置(如上面程序中第 11 行代碼所示〕,還可混合使用位置參數和關鍵字參數(如上面程序中第 13 行代碼所示)。
須要說明的是,若是但願在調用函數時混合使用關鍵字參數和位置參數,則關鍵字參數必須位於位置參數以後(關鍵字參數在參數列表右側)。換句話說,在關鍵字參數以後的只能是關鍵字參數。例如以下代碼是錯誤的:.net
# 位置參數必須放在關鍵字參數以前,下面代碼錯誤code
print(girth(width = 3.5, 4.8))
運行上面代碼,將會提示以下錯誤:get
SyntaxError: positional argument follows keyword argument