python 関数を扱う上で理解しておきたいローカルスコープとグローバルスコープ

概要

関数のパラメータや関数内部で設定される変数は、関数の内部でのみ有効となります。これら範囲のことを「ローカルスコープ」と呼びます。そして、関数の外で定義されたものは「グローバルスコープ」という範囲になります。

ローカルスコープの中の変数を「ローカル変数」、グローバルスコープの中の変数を「グローバル変数」と呼びます。

スコープの決まり事

グローバル変数には、ローカルスコープからアクセスできる。ローカル変数にグローバルスコープからアクセスすることはできない。

ローカルスコープで、他のローカルスコープの変数を使うことはできない。

スコープが異なれば同じ変数名を利用することができる。


グローバルスコープの変数利用例

#グローバルスコープを利用できる設定をしなかった場合
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です。


返信を残す

メールアドレスが公開されることはありません。

CAPTCHA