首頁 > 後端開發 > Python教學 > 為什麼在循環中建立的 Lambda 會引用最後一個物件?

為什麼在循環中建立的 Lambda 會引用最後一個物件?

Patricia Arquette
發布: 2024-11-08 17:38:02
原創
547 人瀏覽過

Why Do Lambdas Created in Loops Reference the Last Object?

在循環內自訂Lambda 建立

使用物件清單並嘗試在存取物件屬性的循環內建立lambda 時,您可以遇到一個問題,所有lambda 都引用列表中的最後一個物件。

要解決這個問題,關鍵是捕獲每個 lambda 的正確物件參考。以下程式碼片段提供了改進的解決方案:

透過將 obj=obj 設定為 lambda 函數中的關鍵字參數,您可以在每次迭代中為 obj 建立新作用域。這確保每個 lambda 捕獲正確的物件引用,將其與後續循環迭代中的變更隔離。

因此,當您迭代 lambdas_list 並呼叫每個函數時,您將獲得每個物件的預期結果在 obj_list 中。此方法有效解決了所有 lambda 引用清單中最後一個物件的問題,並提供了更健壯和 Python 的解決方案。

以上是為什麼在循環中建立的 Lambda 會引用最後一個物件?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

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