Python|グローバル変数を宣言して使う方法

1. はじめに

Pythonでは、関数の外で定義された変数を「グローバル変数」と呼びます。この記事では、Python|グローバル変数を宣言して使う方法について、初心者にもわかりやすく解説します。

グローバル変数を使うことで、複数の関数間で共通の値を扱えるようになりますが、使い方を誤るとバグの温床にもなりがちです。本記事では、基本の使い方から注意点、実務での活用例まで丁寧に紹介します。

 

2. Pythonにおけるグローバル変数の基本

2-1. グローバル変数とは?

グローバル変数とは、関数の外で定義された変数のことです。Pythonでは、関数の内側と外側で変数のスコープ(有効範囲)が異なります。関数外で定義した変数は、関数内からも参照できますが、書き換えるには「global宣言」が必要になります。

2-2. 基本的な使い方

以下は、グローバル変数の定義と関数内での使用例です。

# グローバル変数を定義
message = "こんにちは"

def greet():
    print(message)  # グローバル変数を参照

greet()

実行結果:

こんにちは

2-3. 関数内でグローバル変数を書き換える

関数内でグローバル変数を書き換えるには、globalキーワードを使います。

count = 0  # グローバル変数

def increment():
    global count  # グローバル変数を使うことを明示
    count += 1

increment()
print(count)

実行結果:

1

 

3. よくある使い方・応用例

3-1. 状態を保持するカウンター関数

複数の関数で共通の状態(例:カウント数)を保持したい場合、グローバル変数は便利です。

counter = 0

def add():
    global counter
    counter += 1
    print(f"加算後の値: {counter}")

def reset():
    global counter
    counter = 0
    print("カウンターをリセットしました")

add()
add()
reset()
add()

実行結果:

加算後の値: 1
加算後の値: 2
カウンターをリセットしました
加算後の値: 1

3-2. 設定値やフラグの共有

グローバル変数は、設定フラグや共有リストなど、プログラム全体で扱う定数的なデータにも使えます。

# 設定用のグローバル変数
debug_mode = True

def process():
    if debug_mode:
        print("デバッグモードで処理中...")

process()

実行結果:

デバッグモードで処理中...

 

4. グローバル変数の注意点・エラー対策

4-1. 初心者がよくやるミス

  • global を付け忘れて関数内で代入し、ローカル変数として扱われてしまう
  • 複数関数で同じグローバル変数を操作して、意図しない値になる

例として、global を宣言しないと以下のようなエラーになります。

value = 10

def change_value():
    value += 1  # エラー! globalを指定していない

change_value()

実行結果:

UnboundLocalError: local variable 'value' referenced before assignment

4-2. グローバル変数の多用は避けよう

グローバル変数が多すぎると、コードの可読性や保守性が低下します。複数人で開発する際は、意図しない副作用を防ぐためにも、なるべく関数の引数や戻り値で値を渡す設計を心がけましょう。

 

5. まとめ

  • Pythonでは、関数外で定義した変数をグローバル変数と呼ぶ
  • 関数内で値を変更する場合はglobalキーワードが必要
  • 状態管理や設定フラグなど、実務でも活用される
  • 多用は避け、可読性や保守性に配慮することが重要

グローバル変数は便利ですが、使い方を誤るとバグの温床になりやすいです。適切に理解し、「どこで何が変わるか」を常に意識した設計を心がけましょう。

実務では、設定ファイルの一元管理や、ステータスフラグの共有などで活用される場面があります。習得のコツは、まずは少数のグローバル変数から試し、徐々に仕組みを理解することです。

タイトルとURLをコピーしました