目前為止,我們使用函數(shù)時所用的參數(shù)都是位置參數(shù),即傳入函數(shù)的實際參數(shù)必須與形式參數(shù)的數(shù)量和位置對應。而本節(jié)將介紹的關鍵字參數(shù),則可以避免牢記參數(shù)位置的麻煩,令函數(shù)的調用和參數(shù)傳遞更加靈活方便。
關鍵字參數(shù)是指使用形式參數(shù)的名字來確定輸入的參數(shù)值。通過此方式指定函數(shù)實參時,不再需要與形參的位置完全一致,只要將參數(shù)名寫正確即可。因此,Python 函數(shù)的參數(shù)名應該具有更好的語義,這樣程序可以立刻明確傳入函數(shù)的每個參數(shù)的含義。
例如如下程序:
- # 定義一個函數(shù)
- def girth(width , height):
- print("width: ", width)
- print("height: ", height)
- return 2 * (width + height)
- # 傳統(tǒng)調用函數(shù)的方式,根據(jù)位置傳入?yún)?shù)
- print(girth(3.5, 4.8))
- # 根據(jù)關鍵字參數(shù)來傳入?yún)?shù)
- print(girth(width = 3.5, height = 4.8))
- # 使用關鍵字參數(shù)時可交換位置
- print(girth(height = 4.8, width = 3.5))
- # 部分使用關鍵字參數(shù),部分使用位置參數(shù)
- print(girth(3.5, height = 4.8))
上面程序定義了一個簡單的 girth() 函數(shù),該函數(shù)包含 width、height 兩個參數(shù),該函數(shù)與前面定義的函數(shù)并沒有任何區(qū)別。
接下來在調用該函數(shù)時,既可使用傳統(tǒng)的根據(jù)位置參數(shù)來調用(如上面程序中第 7 行代碼所示),也可根據(jù)關鍵字參數(shù)來調用(如上面程序中第 9 行代碼所示),在使用關鍵字參數(shù)調用時可交換參數(shù)的位置(如上面程序中第 11 行代碼所示〕,還可混合使用位置參數(shù)和關鍵字參數(shù)(如上面程序中第 13 行代碼所示)。
需要說明的是,如果希望在調用函數(shù)時混合使用關鍵字參數(shù)和位置參數(shù),則關鍵字參數(shù)必須位于位置參數(shù)之后。換句話說,在關鍵字參數(shù)之后的只能是關鍵字參數(shù)。例如如下代碼是錯誤的:
# 位置參數(shù)必須放在關鍵字參數(shù)之前,下面代碼錯誤
print(girth(width = 3.5, 4.8))
運行上面代碼,將會提示如下錯誤:
SyntaxError: positional argument follows keyword argument
本站僅提供存儲服務,所有內容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權內容,請
點擊舉報。