Pythonでは、変数のスコープが重要な役割を果たします。スコープとは、変数がアクセスできる範囲のことを指します。Pythonでは、変数は定義された位置やコンテキストによってそのスコープが決定されます。
グローバル変数とは
グローバル変数は、プログラム全体から参照できる変数のことを指します。通常、プログラムの最上位レベルで定義され、すべての関数からアクセスできます。しかし、関数内からグローバル変数を更新するには、globalキーワードの使用が必要です。
gvar = 'abcdefg'
def testfunc():
global gvar
gvar = '0123456'
print(gvar)
print(gvar)
testfunc()
print(gvar)
上記のコードでは、testfunc関数内でglobalキーワードを使用してgvar変数をグローバル変数として宣言し、その値を更新しています。
ローカル変数とは
一方、ローカル変数は、ある関数内で定義され、その関数内でのみ参照できる変数のことを指します。関数が呼び出されるたびに新しいローカル変数が作成され、関数が終了するとその変数は破棄されます。
def lfunc():
lvar = 'abcdefg'
print(lvar)
lfunc()
print(lvar)
上記のコードでは、lfunc関数内でlvar変数をローカル変数として宣言しています。このlvar変数は、lfunc関数の外側では参照できません。
これらの理解は、Pythonプログラムを適切に制御するために必要不可欠です。