globalの概要
グローバル変数の参照と変更 Python予約語 | ||
global 概要 わかりやすく説明 |
||
|
globalの基本的な使い方
以下の例では、関数内でグローバル変数を変更しています。
# global を使ったグローバル変数の変更
counter = 0 # グローバル変数
def increment():
global counter
counter += 1 # グローバル変数を変更
increment()
print(counter) # 1
counter
は関数外で定義されたグローバル変数です。global counter
を使用することで、関数内でグローバル変数を変更しています。- 関数を実行すると、グローバル変数の値が変更されます。
globalがない場合の挙動
global
を使わない場合、関数内の変数操作はローカルスコープに限定されます。
# global がない場合
counter = 0 # グローバル変数
def increment():
counter = 1 # ローカル変数として新たに定義
print(f"関数内の counter: {counter}")
increment()
print(f"グローバルの counter: {counter}") # 0
counter = 1
はローカルスコープで新しく変数を定義しています。- 関数外のグローバル変数
counter
には影響を与えません。
globalを使った複数変数の操作
global
は複数の変数を同時に指定することができます。
# 複数のグローバル変数を操作
x = 10
y = 20
def update_globals():
global x, y
x += 5
y *= 2
update_globals()
print(x, y) # 15, 40
global x, y
で複数のグローバル変数を指定しています。- 関数内で
x
とy
を同時に操作できます。
globalの注意点
- グローバル変数の多用は避ける: 多くの関数で同じグローバル変数を変更すると、コードが読みにくくなる可能性があります。
- ローカル変数を優先: 可能であれば、ローカル変数を使って処理を完結させるべきです。
- スコープを明確にする:
global
を使用する際は、どの変数がグローバルかを明確にしておくことが重要です。
globalのよくある質問
- Q: global を使わずにグローバル変数を変更する方法はありますか?
- A: 関数の戻り値を使って変更した値を返し、それをグローバル変数に代入する方法が一般的です。
- Q: global はどのスコープでも使用できますか?
- A: はい。ただし、モジュールスコープの変数に対してのみ有効です。
- Q: グローバル変数はどのような場面で使うべきですか?
- A: 設定値や共有データなど、複数の関数やモジュールで共有する必要がある場合に使います。
まとめ
global
は、関数内でグローバル変数を参照・変更するためのキーワードです。
- 通常、関数内ではローカル変数が優先されますが、
global
を使うと外部変数を操作できます。 - 適切に使用することで、複数の関数間でデータを共有できます。
- グローバル変数の多用は避け、可読性の高いコードを心がけましょう。
適切に global
を活用し、効率的なプログラムを作成しましょう。