🚴‍♂️

【Python】nonlocal と globalについて

に公開

まず初めに

Pythonのnonlocalglobalは、変数のスコープ(有効範囲)を制御するためのものです。
nonlocalglobalについて簡単にまとめていきたいと思います。

1. nonlocal

nonlocalは、外側の関数の変数を変更するために使います。例えば、関数の中で別の関数を定義し、その内部から外側の関数の変数を変更したいときに使います。

使用例

def outer():
    x = 10  # outer関数のスコープにある変数
    def inner():
        nonlocal x  # outer関数のxを変更する
        x = 20
    inner()
    print(x)  

outer()

実行結果

20

2. global

globalは、グローバル変数を関数内で変更するために使います。グローバル変数とは、関数の外側で定義されている変数のことです。

使用例

x = 10  # これはグローバル変数

def modify_global():
    global x  # この関数内でグローバル変数xを変更する
    x = 30

modify_global()  # modify_global関数を呼ぶ
print(x) 

実行結果

30

Discussion