Lambda 函數及其參數的範圍
在 Python 中,lambda 函數為定義內聯函數提供簡寫表示法。但是,它們的作用域和參數處理可能會導致意外行為,如以下程式碼所示:
預期輸出為:
但是,實際輸出為:
此行為源自於下列事實:lambda 函數不會從封閉範圍建立變數的副本。相反,他們維護對這些變數的引用。因此,循環中 m 值的變更會影響該循環中建立的所有 lambda 函數。
要解決此問題,通常的做法是在創建lambda 函數時捕獲m 的值將其用作可選參數的預設參數:
這可確保每個lambda函數捕捉m 的正確值,從而產生所需的輸出:
以上是為什麼 Lambda 函數的範圍會影響其在 Python 中的輸出?的詳細內容。更多資訊請關注PHP中文網其他相關文章!