Python
 Computer >> コンピューター >  >> プログラミング >> Python

Pythonモジュールで変数スコープはどのように機能しますか?


名前空間は、スコープを実装する方法です。 Pythonでは、各パッケージ、モジュール、クラス、関数、およびメソッド関数は、変数名が解決される「名前空間」を所有しています。関数、モジュール、またはパッケージが評価される(つまり、実行が開始される)と、名前空間が作成されます。それを「評価コンテキスト」と考えてください。関数などの実行が終了すると、名前空間は削除されます。変数は削除されます。さらに、名前がローカル名前空間にない場合に使用されるグローバル名前空間があります。

変数は通常、ローカル名前空間でのみ作成されます。グローバルステートメントと非ローカルステートメントは、ローカル名前空間以外の変数を作成できます。

変数を使用してその値をどこから取得するかを決定する場合は、スコープ解決が必要です。 Pythonでのスコープ解決は、LEGBルールに従います。

L、ローカル —関数(またはラムダ)内で何らかの方法で割り当てられ、その関数でグローバルに宣言されていない名前。

E、囲み機能のローカル —内部から外部まで、静的に囲む関数(またはラムダ)のローカルスコープで名前を付けます。

G、グローバル(モジュール) —モジュールファイルのトップレベルで、またはファイル内のdefでグローバルステートメントを実行することによって割り当てられた名前。

B、組み込み(Python) —組み込みの名前モジュールで事前に割り当てられた名前:open、range、SyntaxErrorなど



  1. Python関数で変数スコープはどのように機能しますか?

    Pythonの変数は、それに値を割り当てるときに定義されます。 Cや他の言語のように、事前に宣言することはありません。使い始めたばかりです。 x = 141 ファイルまたはモジュールのトップレベルで宣言する変数はすべてグローバルスコープにあります。関数内でアクセスできます。 変数は、その仕事をするために必要な最も狭い範囲を持つ必要があります。 例 与えられたコードで x = 141 def foo():     x = 424 #local variable     print x foo() print x 出力 424 141 説明 foo内の

  2. Python関数でグローバル変数を使用するにはどうすればよいですか?

    グローバルおよびローカルという用語は、スクリプトまたはプログラム内の変数の到達範囲に対応します。グローバル変数は、どこからでもアクセスできる変数です。ローカル変数には、そのフレーム内でのみアクセスできます。ローカル変数にグローバルにアクセスすることはできません。 グローバル変数は、関数の外部で定義および宣言され、どこでも使用できる変数です。 同じ名前の変数が関数のスコープ内で定義されている場合、その変数は関数内で指定された値のみを出力し、グローバル値は出力しません。 指定されたコードは、関数fooの内部と外部の両方でグローバル変数にアクセスする方法を示すように書き直されています。 例 #