Pythonのクロージャ

クロージャについて

クロージャとは外部関数(下の例ではmake_adder)にとってのローカル変数を参照している、内部関数(下の例ではadder)のこと。

>>> def make_adder(addend):
...      def adder(augend): return augend + addend
...      return adder
... 
>>> #内部関数のオブジェクトをかえす
>>> adder = make_adder(44)
>>> adder(33)
77
>>> #当然こんなんもできる
>>> make_adder(44)(33)
77


【参考】

Python クックブック 第2版

Python クックブック 第2版