首頁 > 後端開發 > Python教學 > python函數參數預設值的用法及注意要點

python函數參數預設值的用法及注意要點

不言
發布: 2019-04-15 11:07:29
轉載
4068 人瀏覽過

這篇文章帶給大家的內容是關於python函數參數預設值的用法及注意要點,有一定的參考價值,有需要的朋友可以參考一下,希望對你有所幫助。

最有用的形式是對一個或多個參數指定一個預設值。這樣創建的函數,可以用比定義時允許的更少的參數調用,例如:

def ask_ok(prompt, retries=4, reminder='Please try again!'):
    while True:
        ok = input(prompt)
        if ok in ('y', 'ye', 'yes'):
            return True
        if ok in ('n', 'no', 'nop', 'nope'):
            return False
        retries = retries - 1
        if retries < 0:
            raise ValueError(&#39;invalid user response&#39;)
        print(reminder)
登入後複製

這個函數可以透過幾種方式調用:

只給出必需的參數:<span class="pre">ask_ok('Do <span class="pre">you <span class="pre">really <span class="pre">want <span class="pre">to <span class="pre">quit?')<br/></span></span></span></span></span></span>##給一個可選的參數:<span class="pre">ask_ok('OK <span class="pre">to <span class="pre">overwrite <span class="pre">the <span class="pre">file?', <span class="pre">2 )<br/></span></span></span></span></span></span>或給出所有的參數:<span class="pre">ask_ok('OK <span class="pre">to <span class="pre">overwrite <span class="pre">the <span class="pre">file?', <span class="pre">2, <span class="pre">'Come <span class="pre">on, <span class="pre">only <span class="pre">yes <span class="pre">or <span class="pre">no!')</span></span></span></span></span></span></span></span></span></span></span></span>

這個範例也介紹了 <span class="pre"></span>

#這個範例也介紹了 in

 關鍵字。它可以測試一個序列是否包含某個值。

預設值是在 定義過程 中在函數定義處計算的,所以

i = 5

def f(arg=i):
    print(arg)

i = 6
f()
登入後複製

 會列印 5。

重要警告:

 預設值只會執行一次。這條規則在預設值為可變物件(python列表、字典以及大多數類別實例)時很重要。例如,下面的函數會儲存在後續呼叫中傳遞給它的參數:

def f(a, L=[]):
    L.append(a)
    return L

print(f(1))
print(f(2))
print(f(3))
登入後複製
### 這將列印出###
[1]
[1, 2]
[1, 2, 3]
登入後複製
### 如果你不想要在後續呼叫之間共享預設值,你可以這樣寫這個python函數:###
def f(a, L=None):
    if L is None:
        L = []
    L.append(a)
    return L
登入後複製
### ###

以上是python函數參數預設值的用法及注意要點的詳細內容。更多資訊請關注PHP中文網其他相關文章!

相關標籤:
來源:cnblogs.com
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板