ホームページ >バックエンド開発 >Python チュートリアル >Python の LEGB ルールは変数のスコープをどのように決定するのでしょうか?

Python の LEGB ルールは変数のスコープをどのように決定するのでしょうか?

Barbara Streisand
Barbara Streisandオリジナル
2024-12-23 07:36:30660ブラウズ

How Does Python's LEGB Rule Determine Variable Scope?

Python の LEGB ルール: スコープ ルールをわかりやすく理解する

Python のスコープ ルールは、混乱の原因となることがよくありますが、LEGB ルールを通じて容易に理解できます。

LEGBルール

LEGB ルールは、指定されたスコープ内の変数の可用性を決定するための明確なアルゴリズムを提供します:

  • L (ローカル): 定義された変数関数またはラムダ式内。
  • E (Enクロージング関数): 内側から外側へ、外側の関数で定義された変数。
  • G (グローバル): モジュール レベルで定義された変数、または関数内でグローバルに宣言された変数。
  • B (組み込み): から事前に割り当てられた変数Python の組み込み名前モジュール。

次のコードを考えてみましょう。

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

LEGB ルールを使用すると、次のことができます。変数のスコープを決定するx:

  • L: なし。 x はスパム関数内でローカルに定義されていません。
  • E: なし。スパム関数は別の関数内にネストされていません。
  • G: はい。 x がモジュール レベルで定義されている場合、スパム関数内で使用できます。
  • B: はい。 x が組み込み変数 (Python 関数など) の場合、アクセス可能になります。

この例では、x がモジュール レベルで定義されているか、Python である場合に見つかります。組み込まれています。

以上がPython の LEGB ルールは変数のスコープをどのように決定するのでしょうか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。