関数の中で定義された関数(ネストされた関数)は外部のスコープにある変数にアクセスできる。 `nonlocal`キーワードを使うことで、ネストされた関数から外部のスコープの変数を変更できる。 `global`キーワードは、ネストされた関数からグローバル変数を ...
Pythonでプログラムを書いていると、 よく関数の中で関数を作ることがあります。 Python はクロージャに対応していて、 関数の中で作られた関数は、 外側の関数のローカル変数を参照することができます。 クロージャが一番役に立つ場面がデコレータです。
Pythonには「関数型プログラミング」の重要な機能の一つとして、**「クロージャ(Closure)」**という概念があります。 通常、関数の中で定義した変数は、その関数の実行が終わるとメモリから消えてしまいます。 しかし、クロージャを使うと、関数の実行が ...