投稿

[Python 100日チャレンジ] Day 29 - スコープとグローバル変数

Pythonのスコープを理解し、ローカル変数、グローバル変数、global、nonlocalの基本を学びます。

[Python 100日チャレンジ] Day 29 - スコープとグローバル変数

スコープとは

スコープは、変数を参照できる範囲のことです。関数の中で作った変数は、基本的にその関数の中だけで使えます。

1
2
3
def greet():
    message = "こんにちは"
    print(message)

messageは関数の外からは使えません。

グローバル変数

関数の外で作った変数はグローバル変数です。

1
2
3
4
count = 0

def show_count():
    print(count)

読み取りはできますが、関数内で変更する場合は注意が必要です。

globalは慎重に

1
2
3
4
5
count = 0

def increment():
    global count
    count += 1

globalは便利ですが、状態が追いにくくなります。可能なら戻り値で新しい値を返す設計にしましょう。

今日のゴール

変数には使える範囲があります。関数内のローカル変数と外側のグローバル変数を区別し、副作用の少ないコードを目指しましょう。

この投稿は投稿者によって CC BY 4.0 の下でライセンスされています。