首頁 > 後端開發 > Python教學 > 如何避免 Python 中可變預設參數的意外行為?

如何避免 Python 中可變預設參數的意外行為?

Linda Hamilton
發布: 2024-12-15 14:08:10
原創
527 人瀏覽過

How Can I Avoid Unexpected Behavior with Mutable Default Parameters in Python?

避免Python 中的預設參數出現問題

使用Python 的預設參數時,可能會出現某些複雜性,特別是對於可變參數。為了防止這些問題,解決預設參數的行為至關重要。

例如,考慮以下函數:

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

在初始呼叫時,空列表預設參數會如預期運作。但是,後續呼叫會導致意外行為,其中預設參數(最初是一個空列表)會保留先前執行中附加的元素。

為了解決此問題並在每次函數呼叫時創建一個新的空列表,Python 提供了兩種方法:

1。檢定無:

def my_func(working_list=None):<pre class="brush:php;toolbar:false">if working_list is None: 
    working_list = []
working_list.append("a")
print(working_list)
登入後複製

2.條件賦值:
working_list = [] if working_list is None else working_list
working_list.append("a")
print(working_list)
登入後複製

def my_func(working_list=None):<p></p>
登入後複製
兩個解決方案都確保新的空列表在向其追加元素之前被初始化,從而隔離每個函數調用並防止先前的數據累積處決。

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

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