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

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

Barbara Streisand
發布: 2024-10-19 17:26:30
原創
1068 人瀏覽過

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中文網其他相關文章!

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