目前為止,我們使用函數(shù)時所用的參數(shù)都是位置參數(shù),即傳入函數(shù)的實際參數(shù)必須與形式參數(shù)的數(shù)量和位置對應(yīng)。而本節(jié)將介紹的關(guān)鍵字參數(shù),則可以避免牢記參數(shù)位置的麻煩,令函數(shù)的調(diào)用和參數(shù)傳遞更加靈活方便。 關(guān)鍵字參數(shù)是指使用形式參數(shù)的名字來確定輸入的參數(shù)值。通過此方式指定函數(shù)實參時,不再需要與形參的位置完全一致,只要將參數(shù)名寫正確即可。 因此,Python 函數(shù)的參數(shù)名應(yīng)該具有更好的語義,這樣程序可以立刻明確傳入函數(shù)的每個參數(shù)的含義。 例如如下程序:
接下來在調(diào)用該函數(shù)時,既可使用傳統(tǒng)的根據(jù)位置參數(shù)來調(diào)用(如上面程序中第 7 行代碼所示),也可根據(jù)關(guān)鍵字參數(shù)來調(diào)用(如上面程序中第 9 行代碼所示),在使用關(guān)鍵字參數(shù)調(diào)用時可交換參數(shù)的位置(如上面程序中第 11 行代碼所示〕,還可混合使用位置參數(shù)和關(guān)鍵字參數(shù)(如上面程序中第 13 行代碼所示)。 需要說明的是,如果希望在調(diào)用函數(shù)時混合使用關(guān)鍵字參數(shù)和位置參數(shù),則關(guān)鍵字參數(shù)必須位于位置參數(shù)之后。換句話說,在關(guān)鍵字參數(shù)之后的只能是關(guān)鍵字參數(shù)。例如如下代碼是錯誤的:
# 位置參數(shù)必須放在關(guān)鍵字參數(shù)之前,下面代碼錯誤 SyntaxError: positional argument follows keyword argument |
|