カテゴリー
Uncategorized

関数閉包 – function clausure

def hoge(var):
def foo():
print var
return foo
fnc = hoge('closure')
fnc()
> closure

みたいなやつです。

PythonとかのLLだと変数とかはレキシカルスコープで回収されない、ステートメントが終了してもどこかから参照されている限り生存しています。

また、関数の生成も変数の生成と同じなので、関数hogeが呼ばれる度に内部が評価されて関数fooが生成されます。

束縛とかそういう奴。

実際には違う概念のハズですが、感覚としてはそんな感じ。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です