溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

怎么使用Python函數(shù)關(guān)鍵字參數(shù)

發(fā)布時間:2020-08-25 15:39:40 來源:億速云 閱讀:139 作者:Leah 欄目:編程語言

怎么使用Python函數(shù)關(guān)鍵字參數(shù)?針對這個問題,這篇文章詳細(xì)介紹了相對應(yīng)的分析和解答,希望可以幫助更多想解決這個問題的小伙伴找到更簡單易行的方法。

在定義 Python 函數(shù)時可定義形參(形式參數(shù)的意思),這些形參的值要等到調(diào)用時才能確定下來,由函數(shù)的調(diào)用者負(fù)責(zé)為形參傳入?yún)?shù)值。簡單來說,就是誰調(diào)用函數(shù),誰負(fù)責(zé)傳入?yún)?shù)值。

Python 函數(shù)的參數(shù)名不是無意義的,Python 允許在調(diào)用函數(shù)時通過名字來傳入?yún)?shù)值。因此,Python 函數(shù)的參數(shù)名應(yīng)該具有更好的語義,這樣程序可以立刻明確傳入函數(shù)的每個參數(shù)的含義。

按照形參位置傳入的參數(shù)被稱為位置參數(shù)。如果使用位置參數(shù)的方式來傳入?yún)?shù)值,則必須嚴(yán)格按照走義函數(shù)時指定的順序來傳入?yún)?shù)值;如果根據(jù)參數(shù)名來傳入?yún)?shù)值,則無須遵守定義形參的順序,這種方式被稱為關(guān)鍵字(keyword)參數(shù)。例如如下程序:

# 定義一個函數(shù)
def girth(width , height):
    print("width: ", width)
    print("height: ", height)
    return 2 * (width + height)
# 傳統(tǒng)調(diào)用函數(shù)的方式,根據(jù)位置傳入?yún)?shù)
print(girth(3.5, 4.8))
# 根據(jù)關(guān)鍵字參數(shù)來傳入?yún)?shù)
print(girth(width = 3.5, height = 4.8))
# 使用關(guān)鍵字參數(shù)時可交換位置
print(girth(height = 4.8, width = 3.5))
# 部分使用關(guān)鍵字參數(shù),部分使用位置參數(shù)
print(girth(3.5, height = 4.8))

上面程序定義了一個簡單的 girth() 函數(shù),該函數(shù)包含 width、height 兩個參數(shù),該函數(shù)與前面定義的函數(shù)并沒有任何區(qū)別。

接下來在調(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ù)之前,下面代碼錯誤
print(girth(width = 3.5, 4.8))

運行上面代碼,將會提示如下錯誤:

SyntaxError: positional argument follows keyword argument

關(guān)于怎么使用Python函數(shù)關(guān)鍵字參數(shù)問題的解答就分享到這里了,希望以上內(nèi)容可以對大家有一定的幫助,如果你還有很多疑惑沒有解開,可以關(guān)注億速云行業(yè)資訊頻道了解更多相關(guān)知識。

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI