Python で複数のファイル間でグローバル変数を使用する
この簡単なガイドは、Python で複数のファイルにまたがるグローバル変数の使用に関するものです。 しかし、本題に入る前に、グローバル変数と、複数のファイルでのそれらの使用について簡単に見てみましょう。
Python のグローバル変数
グローバル変数は、関数スコープの一部ではなく、プログラム全体でグローバルに使用できる変数です。 これは、グローバル変数が関数本体の内外でも使用できることを示唆しています。
例を見てみましょう:
x = "my global var"
def fun1():
print("Inside fun1(): ", x)
fun1()
print("In global context: ", x)
このコードでグローバル変数 x
を定義し、値を割り当てました。 次に、関数内外で x
変数を出力して、両方のスコープで値を確認しました。
出力:
出力は、変数の値が関数の内外で同じであることを示しています。 関数のように、ローカルスコープでグローバル変数の値を変更する必要がある場合は、変数を宣言するときに global
キーワードを使用する必要があります。
Python で複数のファイル間でグローバル変数を使用する
プログラムに複数のファイルを使用していて、これらのファイルで変数を更新する必要がある場合は、次のように global
キーワードを使用して変数を宣言する必要があります。
global x
x = "My global var"
複数の Python コード ファイルと学生のリストのグローバル変数を処理する必要があるシナリオの例を考えてみましょう。 resource.py
ファイルには学生のグローバル リストがあり、prog.py
にはこのグローバル リストに学生を追加するメソッドがあります。
次のコードを使用して概念を実現できます。
コード - resource.py
:
def initialize():
global students
students = []
コード - prog.py
:
import resource
def addStudent():
resource.students.append("John")
resource.students.append("Dave")
コード - Main.py
:
import resource
import prog
resource.initialize()
prog.addStudent()
print(resource.students[0])
print(resource.students[1])
最初の resource.py
ファイルでは、リスト studentList
を宣言し、それを空のリストに初期化する関数を定義しました。 次のファイル (つまり、prog.py
) では、resource
モジュールをインクルードしてから、グローバル リスト studentList
に 2つのオブジェクトを追加した関数 addStudent
を定義しています。
メイン ファイル Main.py
には、resource
と prog
の両方のモジュールが含まれています。 後で、両方のモジュールの関数 initialize
と addStudent
をそれぞれ呼び出しました。
その後、リストのインデックスを出力すると、次の出力が得られました。
したがって、global
キーワードを使用して、Python ファイルでグローバル変数を定義し、他のファイルで使用することができます。 ここで、別のファイル内のファイルのグローバル変数にアクセスするには、グローバル変数を持つファイルを別のファイル内のモジュールとしてインポートし、追加の複雑さなしに、インポートされたモジュールのグローバル変数に直接アクセスします。