溫馨提示×

溫馨提示×

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

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

Python函數(shù)默認參數(shù)如何設置

發(fā)布時間:2023-03-31 11:14:01 來源:億速云 閱讀:217 作者:iii 欄目:開發(fā)技術(shù)

這篇文章主要介紹“Python函數(shù)默認參數(shù)如何設置”的相關(guān)知識,小編通過實際案例向大家展示操作過程,操作方法簡單快捷,實用性強,希望這篇“Python函數(shù)默認參數(shù)如何設置”文章能幫助大家解決問題。

我們知道,在調(diào)用函數(shù)時如果不指定某個參數(shù),Python 解釋器會拋出異常。為了解決這個問題,Python 允許為參數(shù)設置默認值,即在定義函數(shù)時,直接給形式參數(shù)指定一個默認值。這樣的話,即便調(diào)用函數(shù)時沒有給擁有默認值的形參傳遞參數(shù),該參數(shù)可以直接使用定義函數(shù)時設置的默認值。

Python 定義帶有默認值參數(shù)的函數(shù),其語法格式如下:

def 函數(shù)名(...,形參名,形參名=默認值):
    代碼塊

注意,在使用此格式定義函數(shù)時,指定有默認值的形式參數(shù)必須在所有沒默認值參數(shù)的最后,否則會產(chǎn)生語法錯誤。

下面程序演示了如何定義和調(diào)用有默認參數(shù)的函數(shù):

#str1沒有默認參數(shù),str2有默認參數(shù)
def dis_str(str1,str2 = "http://c.biancheng.net/python/"):
print("str1:",str1)
print("str2:",str2)
 
dis_str("http://c.biancheng.net/shell/")
dis_str("http://c.biancheng.net/java/","http://c.biancheng.net/golang/")

運行結(jié)果為:

str1: http://c.biancheng.net/shell/
str2: http://c.biancheng.net/python/
str1: http://c.biancheng.net/java/
str2: http://c.biancheng.net/golang/

上面程序中,dis_str() 函數(shù)有 2 個參數(shù),其中第 2 個設有默認參數(shù)。這意味著,在調(diào)用 dis_str() 函數(shù)時,我們可以僅傳入 1 個參數(shù),此時該參數(shù)會傳給 str1 參數(shù),而 str2 會使用默認的參數(shù),如程序中第 6 行代碼所示。

當然在調(diào)用 dis_str() 函數(shù)時,也可以給所有的參數(shù)傳值(如第 7 行代碼所示),這時即便 str2 有默認值,它也會優(yōu)先使用傳遞給它的新值。
同時,結(jié)合關(guān)鍵字參數(shù),以下 3 種調(diào)用 dis_str() 函數(shù)的方式也是可以的:

dis_str(str1 = "http://c.biancheng.net/shell/")
dis_str("http://c.biancheng.net/java/",str2 = "http://c.biancheng.net/golang/")
dis_str(str1 = "http://c.biancheng.net/java/",str2 = "http://c.biancheng.net/golang/")

再次強調(diào),當定義一個有默認值參數(shù)的函數(shù)時,有默認值的參數(shù)必須位于所有沒默認值參數(shù)的后面。因此,下面例子中定義的函數(shù)是不正確的:

#語法錯誤
def dis_str(str1="http://c.biancheng.net/python/",str2,str3):
pass

顯然,str1 設有默認值,而 str2 和 str3 沒有默認值,因此 str1 必須位于 str2 和 str3 之后。

有讀者可能會問,對于自己自定義的函數(shù),可以輕易知道哪個參數(shù)有默認值,但如果使用 Python 提供的內(nèi)置函數(shù),又或者其它第三方提供的函數(shù),怎么知道哪些參數(shù)有默認值呢?

Pyhton 中,可以使用“函數(shù)名.__defaults__”查看函數(shù)的默認值參數(shù)的當前值,其返回值是一個元組。以本節(jié)中的 dis_str() 函數(shù)為例,在其基礎上,執(zhí)行如下代碼:

print(dis_str.__defaults__)

程序執(zhí)行結(jié)果為:

('http://c.biancheng.net/python/',)

關(guān)于“Python函數(shù)默認參數(shù)如何設置”的內(nèi)容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業(yè)相關(guān)的知識,可以關(guān)注億速云行業(yè)資訊頻道,小編每天都會為大家更新不同的知識點。

向AI問一下細節(jié)

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

AI