首頁  >  文章  >  後端開發  >  為什麼 Lambda 函數的範圍會影響其在 Python 中的輸出?

為什麼 Lambda 函數的範圍會影響其在 Python 中的輸出?

Barbara Streisand
Barbara Streisand原創
2024-10-19 17:26:30947瀏覽

Why Does the Scope of Lambda Functions Impact Their Output in Python?

Lambda 函數及其參數的範圍

在 Python 中,lambda 函數為定義內聯函數提供簡寫表示法。但是,它們的作用域和參數處理可能會導致意外行為,如以下程式碼所示:

預期輸出為:

但是,實際輸出為:

此行為源自於下列事實:lambda 函數不會從封閉範圍建立變數的副本。相反,他們維護對這些變數的引用。因此,循環中 m 值的變更會影響該循環中建立的所有 lambda 函數。

要解決此問題,通常的做法是在創建lambda 函數時捕獲m 的值將其用作可選參數的預設參數:

這可確保每個lambda函數捕捉m 的正確值,從而產生所需的輸出:

以上是為什麼 Lambda 函數的範圍會影響其在 Python 中的輸出?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn