首頁 > 後端開發 > Python教學 > 在 Python 函數中使用預設參數時如何避免意外行為?

在 Python 函數中使用預設參數時如何避免意外行為?

Mary-Kate Olsen
發布: 2024-12-17 04:08:25
原創
995 人瀏覽過

How Can I Avoid Unexpected Behavior When Using Default Parameters in Python Functions?

避免 Python 中的預設參數陷阱

在 Python 中,使用空列表作為預設參數可能很誘人。但是,由於預設參數的早期綁定,這可能會導致意外行為。

考慮這樣的函數:

def my_func(working_list=[]):
    working_list.append("a")
    print(working_list)
登入後複製

最初,預設參數如預期運作。但是,後續呼叫會繼續更新相同的列表,導致列印的列表隨著每次呼叫而增長。

為了避免這種情況,請明確測試函數體中是否存在預設參數,並在以下情況下分配一個新的空白列表:必要的:

def my_func(working_list=None):
    if working_list is None:
        working_list = []
    working_list.append("a")
    print(working_list)
登入後複製

或者,您可以使用one-liner:

working_list = [] if working_list is None else working_list
登入後複製

旁白: PEP 8 建議使用is None 與None 等單例進行比較。避免使用 == None,因為它可能會導致錯誤的結果。

以上是在 Python 函數中使用預設參數時如何避免意外行為?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

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