概要
関数のパラメータや関数内部で設定される変数は、関数の内部でのみ有効となります。これら範囲のことを「ローカルスコープ」と呼びます。そして、関数の外で定義されたものは「グローバルスコープ」という範囲になります。
ローカルスコープの中の変数を「ローカル変数」、グローバルスコープの中の変数を「グローバル変数」と呼びます。
スコープの決まり事
グローバル変数には、ローカルスコープからアクセスできる。ローカル変数にグローバルスコープからアクセスすることはできない。
ローカルスコープで、他のローカルスコープの変数を使うことはできない。
スコープが異なれば同じ変数名を利用することができる。
グローバルスコープの変数利用例
#グローバルスコープを利用できる設定をしなかった場合
test = "グローバル変数だよ" #グローバル変数
def test1():
test2 = 200 #ローカル変数
print(test2)
print(test)
#>>> test1()
#200
#Traceback (most recent call last):
# File "<stdin>", line 1, in <module>
# File "<stdin>", line 4, in test1
#NameError: name 'test' is not defined
#グローバルスコープを利用できる設定をした場合
test = "グローバル変数だよ" #グローバル変数
def test3():
global test #グローバル変数を使う宣言
test4 = "ローカル変数だよ" #ローカル変数
print(test3)
print(test4)
#>>> test3()
#ローカル変数だよ
#グローバル変数だよ
利用したいグローバル変数を「global 【】」と宣言するだけでOKです。