萬九郎の硬い船

プログラミング学習記録など

関数内でグローバル変数に代入する場合はglobal宣言を使う必要がある

Pythonでは、関数内でグローバル変数に値を代入する場合はglobal宣言を使う必要がある。たとえば

a = "何か"
def local():
    a = "別の何か"
    print(a)
local()
print(a)

とした場合、local()は"別の何か"を出力する(関数内のaはローカル関数)が、グローバルにあるaの値は変わらないため関数外のprint(a)は"何か"を出力する。 グローバルのaを変更したい場合、関数内で

def local():
    global a
    a = "別の何か"

という形にすると、local()を実行した時点でaに"別の何か"が代入され、関数外のprint(a)も"別の何か"を出力するようになる。