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

Pythonの名前空間とスコープ


Pythonでは、変数、関数、ライブラリ、モジュールなどを扱います。使用する変数の名前が、別の変数の名前として、または別の関数や別のメソッドの名前としてすでに存在している可能性があります。このようなシナリオでは、これらすべての名前がPythonプログラムによってどのように管理されているかを知る必要があります。これが名前空間の概念です。

以下は名前空間の3つのカテゴリです

  • ローカル名前空間:プログラムによって宣言された関数と変数のすべての名前は、この名前空間に保持されます。この名前空間は、プログラムが実行されている限り存在します。

  • グローバル名前空間:この名前空間は、Pythonプログラムで使用されているモジュールに含まれている関数およびその他の変数のすべての名前を保持します。ローカル名前空間の一部であるすべての名前が含まれます。

  • 組み込みの名前空間:これは、プログラミング環境としてロードされるPythonインタープリターの一部として使用可能なデフォルトの名前で使用できる最高レベルの名前空間です。これにはグローバル名前空間が含まれ、グローバル名前空間にはローカル名前空間が含まれます。

Pythonの名前空間とスコープ

Pythonでのスコープ

名前空間には、使用可能な場合に有効期間があります。これはスコープとも呼ばれます。また、スコープは、変数またはオブジェクトが配置されているコーディング領域によって異なります。以下のプログラムで、内側のループで宣言された変数が外側のループでどのように使用できるかを確認できますが、その逆はできません。また、外部関数の名前もグローバル変数の一部になることに注意してください。

prog_var = 'Hello'
def outer_func():
   outer_var = 'x'
   def inner_func():
      inner_var = 'y'
      print(dir(), ' Local Variable in Inner function')

      inner_func()
      print(dir(), 'Local variables in outer function')

      outer_func()
      print(dir(), 'Global variables ')

上記のコードを実行すると、次の結果が得られます-

出力

['inner_var'] Local Variable in Inner function
['inner_func', 'outer_var'] Local variables in outer function
['__annotations__', '__builtins__', '__cached__', '__doc__', '__file__', '__loader__', '__name__', '__package__', '__spec__', 'outer_func', 'prog_var'] Global variables

  1. Pythonの名前空間とは何ですか?

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

  2. Python変数-Pythonで変数を宣言して使用する方法

    Pythonで変数を作成して使用する方法に関するガイド。 Python変数 変数は、メモリに格納されているオブジェクトへの参照を格納するために使用される名前付きの場所です。 Pythonで変数を作成するときは、次のルールを考慮する必要があります。 変数名は文字またはアンダースコアで始まる必要があります 変数名を数字で始めることはできません 変数名には、英数字とアンダースコア(A-z、0-9、および_)のみを含めることができます 変数名では大文字と小文字が区別されます(日付、日付、日付は3つの異なる変数です) 変数の長さは任意です 変数名をPythonキーワードにすることはできません P