在循環內自訂Lambda 建立
使用物件清單並嘗試在存取物件屬性的循環內建立lambda 時,您可以遇到一個問題,所有lambda 都引用列表中的最後一個物件。
要解決這個問題,關鍵是捕獲每個 lambda 的正確物件參考。以下程式碼片段提供了改進的解決方案:
透過將 obj=obj 設定為 lambda 函數中的關鍵字參數,您可以在每次迭代中為 obj 建立新作用域。這確保每個 lambda 捕獲正確的物件引用,將其與後續循環迭代中的變更隔離。
因此,當您迭代 lambdas_list 並呼叫每個函數時,您將獲得每個物件的預期結果在 obj_list 中。此方法有效解決了所有 lambda 引用清單中最後一個物件的問題,並提供了更健壯和 Python 的解決方案。
以上是為什麼在循環中建立的 Lambda 會引用最後一個物件?的詳細內容。更多資訊請關注PHP中文網其他相關文章!