global | グローバル変数 | Python予約語 徹底解説 使い方と注意点

現在作成中です。今後加筆修正してまいります。
スポンサーリンク
スポンサーリンク

Pythonの予約語「global」の解説

globalとは何か

globalは、Pythonで変数のスコープ(有効範囲)を制御するために使用される予約語です。通常、関数内で定義された変数はローカル変数として扱われ、その関数内でのみ使用されます。しかし、globalを使うことで、関数内からグローバル変数(関数の外でも使用可能な変数)を操作することができます。

globalの基本的な使い方

以下の例では、globalキーワードを使って関数内でグローバル変数を変更しています。

count = 0  # グローバル変数

def increment():
    global count  # グローバル変数を指定
    count += 1

increment()
print(count)  # 出力: 1

このコードでは、countというグローバル変数が関数increment内で操作されています。globalを指定することで、関数内でもグローバル変数countにアクセスして値を変更することが可能です。

ローカル変数とグローバル変数の違い

通常、関数内で定義された変数はローカル変数として扱われ、外部のコードからはアクセスできません。しかし、globalを使用することで、関数内からもグローバル変数にアクセスすることが可能です。以下に、ローカル変数とグローバル変数の違いを示します。

変数の種類 定義場所 有効範囲
ローカル変数 関数内 その関数内のみ
グローバル変数 関数外 プログラム全体

globalを使わない場合

globalを使わないと、関数内で同じ名前の変数を定義した場合、それはローカル変数として扱われ、グローバル変数には影響を与えません。次の例を見てみましょう。

count = 0  # グローバル変数

def increment():
    count = 10  # ローカル変数として扱われる
    print(count)  # 出力: 10

increment()
print(count)  # 出力: 0

このコードでは、関数increment内でcountが再定義されていますが、これはローカル変数として扱われ、グローバル変数のcountには影響を与えていません。関数外でのcountの値は変わらず0です。

globalの使用例

globalを使うと、関数内でグローバル変数にアクセスして変更することができます。次の例では、グローバル変数のリストに関数内から要素を追加しています。

numbers = []  # グローバル変数

def add_number(num):
    global numbers  # グローバル変数を指定
    numbers.append(num)

add_number(10)
add_number(20)
print(numbers)  # 出力: [10, 20]

この例では、グローバル変数numbers(リスト)に関数内から1020を追加しています。globalを使用することで、関数内でグローバル変数にアクセスし、変更が可能になっています。

globalの注意点

globalを使う際には、いくつかの注意点があります。グローバル変数を頻繁に変更すると、プログラムの挙動が予測しにくくなり、デバッグが困難になる可能性があります。また、globalを使わなくても済む場合は、ローカル変数や関数の引数を活用して、より安全で管理しやすいコードを書くことが推奨されます。

まとめと注意点

  • globalは、関数内でグローバル変数を操作するために使用されます。
  • グローバル変数にアクセスし変更を加える場合、globalを使わなければローカル変数として扱われます。
  • 頻繁にglobalを使うと、コードの保守性が低下し、バグの原因となりやすいので注意が必要です。
  • 可能な限りグローバル変数の使用を避け、ローカル変数や関数の引数でデータを管理するのが望ましいです。