TIL

Today I Learned. 知ったこと、学んだことを書いていく

nonlocal ネストした関数から変数にアクセスする - Python

ネストした関数で、上で定義された変数を使うにはnonlocalキーワードを使う

def main():
    a = 1

    def child():
        nonlocal a
        a += 1
        print(a)

    print(a)
    child()
    print(a)

main()

出力結果

1
2
2

ネストした関数から、アクセスできた!!

これは、メモ化のための実装方法らしい。クロージャというやつ
メモ化ってどっかで聞いたことある。
たしか、同じ引数だったら、前回の結果をそのまま返すやつだっけ

クロージャについてはこんどちゃんとやる。こんど。うん。

参考文献