Python プログラミングでは、プログラムを適切に構造化するために、さまざまなファイルまたはモジュール内の変数を管理する方法を理解することが重要です。スコープと名前空間に関する質問です。
名前空間とスコープ
まず、名前空間とは何かを理解する必要があります。Python では、名前空間は名前 (変数名、関数名など) からオブジェクトへのマッピングです。注意すべき重要な点は、異なる名前空間の名前間には関係がないということです。したがって、各モジュールには独自の名前空間があるため、2 つの異なるモジュールは両方とも競合することなく変数を定義できますmy_var
。
たとえば、次の 2 つの Python ファイルについて考えてみましょう。
file1.py 内:
my_var = "Hello from file1"
file2.py 内:
my_var = "Hello from file2"
file1.py と file2.py はmy_var
2 つの異なる変数です。これらは異なる名前空間に存在し、相互に干渉しません。
モジュール間で変数をインポートする
各モジュールには独自の名前空間がありますが、Python では import ステートメントを使用して、あるモジュールの変数に別のモジュールにアクセスできます。
file1.py 内:
my_var = "Hello from file1"
file2.py 内:
from file1 import my_var
print(my_var) # 这将输出:Hello from file1
ここで、file2.py の my_var はインポートされたものであるため、file1.py の my_var と同じです。ただし、後で my_var が file2.py で再定義された場合、この変更は file1.py の元の my_var には影響しません。