首頁 >後端開發 >Python教學 >Python的LEGB規則如何確定變數範圍?

Python的LEGB規則如何確定變數範圍?

Barbara Streisand
Barbara Streisand原創
2024-12-23 07:36:30661瀏覽

How Does Python's LEGB Rule Determine Variable Scope?

Python 的LEGB 法則:揭秘作用域規則

Python 的作用域規則通常是混亂的根源,但可以透過LEGB 規則輕鬆理解。

LEGB規則

LEGB 規則提供了一個清晰的演算法來決定給定範圍內變數的可用性:

  • L(局部): 定義的變數在函數或lambda 表達式中。
  • E(封閉函數):在封閉函數中定義的變量,從內部到外部。
  • G(全域):在模組層級定義或在函數內宣告為全域的變數。
  • B(內建): 來自Python 內建名稱的預先分配變數

範例

考慮以下程式碼:

class Foo:
    def spam():
        for var in []:
            x()

使用LEGB規則,我們可以確定模組的範圍多變的x:

  • L:無。 x 未在垃圾郵件函數中本機定義。
  • E: 無。垃圾郵件函數未巢狀在另一個函數中。
  • G: 是的。如果 x 是在模組層級定義的,則它將在垃圾郵件功能中可用。
  • B: 是的。如果 x 是內建變數(例如 Python 函數),則它將是可存取的。

在此範例中,如果 x 是在模組層級定義的或是 Python,則可以找到 x內建。

以上是Python的LEGB規則如何確定變數範圍?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

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