関数 中級

43. スコープ(グローバル変数とローカル変数)

スコープとは

関数の中で作った変数は「ローカル変数」と呼ばれ、その関数の中でしか存在できません。関数の処理が終わると同時に消えてしまうイメージです。一方、関数の外で作られた変数は「グローバル変数」と呼ばれ、プログラム全体のどこからでも参照できます。この「どこから見えるか」という範囲のことを、スコープと呼びます。

⚠️ 注意:関数の中でグローバル変数と同じ名前の変数に「代入」しようとすると、Pythonはそれを別物の新しいローカル変数として扱ってしまいます。グローバル変数そのものを書き換えたい場合は、次のレッスンで習うglobal宣言が必要になります。

サンプルコード

x = 10  # グローバル変数

def show_x():
    y = 20  # ローカル変数
    print(x, y)

show_x()
print(x)
関数show_x()の中では、グローバル変数xを参照だけならそのまま行えます。一方yはこの関数の中だけで生きているローカル変数なので、関数の外でyを使おうとするとNameErrorになります。

📝 練習問題

練習問題:グローバル変数count = 0を定義し、それを表示するだけの関数show_count()を作って呼び出してください。