Python函數(shù)默認參數(shù)怎么設(shè)置

這期內(nèi)容當中小編將會給大家?guī)碛嘘P(guān)Python函數(shù)默認參數(shù)怎么設(shè)置,文章內(nèi)容豐富且以專業(yè)的角度為大家分析和敘述,閱讀完這篇文章希望大家可以有所收獲。

為梅縣等地區(qū)用戶提供了全套網(wǎng)頁設(shè)計制作服務(wù),及梅縣網(wǎng)站建設(shè)行業(yè)解決方案。主營業(yè)務(wù)為成都網(wǎng)站制作、成都網(wǎng)站設(shè)計、梅縣網(wǎng)站設(shè)計,以傳統(tǒng)方式定制建設(shè)網(wǎng)站,并提供域名空間備案等一條龍服務(wù),秉承以專業(yè)、用心的態(tài)度為用戶提供真誠的服務(wù)。我們深信只要達到每一位用戶的要求,就會得到認可,從而選擇與我們長期合作。這樣,我們也可以走得更遠!

在某些情況下,程序需要在定義函數(shù)時為一個或多個形參指定默認值,這樣在調(diào)用函數(shù)時就可以省略為該形參傳入?yún)?shù)值,而是直接使用該形參的默認值。

為形參指定默認值的語法格式如下:

形參名 = 默認值

從上面的語法格式可以看出,形參的默認值緊跟在形參之后,中間以英文“=”隔開。

例如,如下程序為 name、message 形參指定了默認值:

# 為兩個參數(shù)指定默認值
def say_hi(name = "孫悟空", message = "歡迎來到C語言中文網(wǎng)"):
    print(name, ", 您好")
    print("消息是:", message)
# 全部使用默認參數(shù)
say_hi()
# 只有message參數(shù)使用默認值
say_hi("白骨精")
# 兩個參數(shù)都不使用默認值
say_hi("白骨精", "歡迎學習Python")
# 只有name參數(shù)使用默認值
say_hi(message = "歡迎學習Python")

上面程序中在定義 say_hi() 函數(shù)時為 name、message 形參指定了默認值,因此程序中第一次調(diào)用 say_hi() 函數(shù)時沒有為 name、message 參數(shù)指定參數(shù)值,此時 name、message 參數(shù)將會使用其默認值。

程序第二次調(diào)用 say_hi() 函數(shù)時為 name 參數(shù)(使用位置參數(shù))指定了參數(shù)值,此時 message 參數(shù)將會使用默認值。

程序第三次調(diào)用 say_hi() 函數(shù)時為 name、message 參數(shù)(使用位置參數(shù))都指定了參數(shù)值,因此這兩個參數(shù)都使用開發(fā)者傳入的參數(shù)值。

程序第四次調(diào)用 say_hi() 函數(shù)時只為 message 參數(shù)(使用關(guān)鍵字參數(shù))傳入了參數(shù)值,此時 name 參數(shù)將使用默認值。

運行上面程序,可以看到如下輸出結(jié)果:

孫悟空 , 您好
消息是: 歡迎來到C語言中文網(wǎng)
白骨精 , 您好
消息是: 歡迎來到C語言中文網(wǎng)
白骨精 , 您好
消息是: 歡迎學習Python
孫悟空 , 您好
消息是: 歡迎學習Python

從上面程序可以看出,如果只傳入一個位置參數(shù),由于該參數(shù)位于第一位,系統(tǒng)會將該參數(shù)值傳給 name 參數(shù)。因此,我們不能按如下方式調(diào)用 say_hi() 函數(shù):

say_hi("歡迎學習Python")

上面調(diào)用時傳入的“歡迎學習Python”字符串將傳給 name 參數(shù),而不是 message 參數(shù)。

我們也不能按如下方式來調(diào)用 say_hi() 函數(shù):

say_hi(name="白骨精", "歡迎學習Python")

因為 Python 規(guī)定,關(guān)鍵字參數(shù)必須位于位置參數(shù)的后面。因此提示錯誤:positional argument follows keyword argument。

那么,我們能不能單純地將上面兩個參數(shù)交換位置呢?

#say_hi("歡迎學習Python" , name="白骨精")

上面調(diào)用依然是錯誤的,因為第一個字符串沒有指定關(guān)鍵字參數(shù),因此將使用位置參數(shù)為 name 參數(shù)傳入?yún)?shù)值,第二個參數(shù)使用關(guān)鍵字參數(shù)的形式再次為 name 參數(shù)傳入?yún)?shù)值,這意味著兩個參數(shù)值其實都會傳給 name 參數(shù),程序為 name 參數(shù)傳入了多個參數(shù)值。因此提示錯誤:say hi() got multiple values for argument 'name'。

將函數(shù)調(diào)用改為如下兩種形式是正確的:

say_hi("白骨精", message="歡迎學習Python")
say_hi(name="白骨精", message="歡迎學習Python")

上面第一行代碼先使用位置參數(shù)為 name 參數(shù)傳入?yún)?shù)值,再使用關(guān)鍵字參數(shù)為 message 參數(shù)傳入?yún)?shù)值;第二行代碼中的 name、message 參數(shù)都使用關(guān)鍵字參數(shù)傳入?yún)?shù)值。

由于 Python 要求在調(diào)用函數(shù)時關(guān)鍵字參數(shù)必須位于位置參數(shù)的后面,因此在定義函數(shù)時指定了默認值的參數(shù)(關(guān)鍵字參數(shù))必須在沒有默認值的參數(shù)之后。例如如下代碼:

# 定義一個打印三角形的函數(shù),有默認值的參數(shù)必須放在后面
def printTriangle(char, height = 5) :
    for i in range(1, height + 1) :
        # 先打印一排空格
        for j in range(height - i) :
            print(' ', end = '')
        # 再打印一排特殊字符
        for j in range(2 * i - 1) :
            print(char, end = '')
        print()
printTriangle('@', 6)
printTriangle('#', height=7)
printTriangle(char = '*')

上面程序定義了二個 printTriangle() 函數(shù),該函數(shù)的第一個 char 參數(shù)沒有默認值,第二個 height 參數(shù)有默認值。

上面程序中第一次調(diào)用 printTriangle() 時,程序使用兩個位置參數(shù)分別為 char、height 傳入?yún)?shù)值,這當然是允許的;第二次調(diào)用 printTriangle() 時,第一個參數(shù)使用位置參數(shù),那么該參數(shù)值將傳給 char 參數(shù),第二個參數(shù)使用關(guān)鍵字參數(shù)為 height 參數(shù)傳入?yún)?shù)值,這也是允許的;第三次調(diào)用 printTriangle() 時,只使用關(guān)鍵字參數(shù)為 char 參數(shù)傳入?yún)?shù)值,此時 height 參數(shù)將使用默認值,這是符合語法的。

上述就是小編為大家分享的Python函數(shù)默認參數(shù)怎么設(shè)置了,如果剛好有類似的疑惑,不妨參照上述分析進行理解。如果想知道更多相關(guān)知識,歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道。

文章名稱:Python函數(shù)默認參數(shù)怎么設(shè)置
標題來源:http://bm7419.com/article36/pceepg.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供建站公司、企業(yè)建站、外貿(mào)網(wǎng)站建設(shè)、品牌網(wǎng)站建設(shè)、、網(wǎng)站策劃

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

成都seo排名網(wǎng)站優(yōu)化