Pythonで学ぶ「変数のスコープ」:globalとlocalの違い
Pythonでプログラムを書いていると、「同じ変数名を使っているのに中身が違う!」「変数が参照できない!」といった混乱に陥ることがあります。
その原因の多くは「変数のスコープ(有効範囲)」にある
この記事では、Pythonにおける変数のスコープと、globalキーワードの使い方について、サンプルコード付きでわかりやすく解説する。
スコープとは?
スコープとは、「変数が使える範囲」のことです。
Pythonでは、どこで変数が定義されたか によって、どこからアクセスできるかが決まります。
スコープの種類
| スコープの種類 | 説明 |
|---|---|
| グローバル変数 | 関数の外で定義された変数。スクリプト全体で有効。 |
| ローカル変数 | 関数の中で定義された変数。関数の外からはアクセスできない。 |
実際のコードで確認
arg = "arg" # グローバル変数
def local_arg():
arg = "local" # ローカル変数(グローバルとは別物)
def global_arg():
global arg # ここでグローバル変数を参照・書き換える
arg = "global"