>>> def genCounter(): ... c = 0 ... def inc(): ... nonlocal c ... c += 1 ... return c ... return inc ... >>> c = genCounter() >>> c <function genCounter.<locals>.inc at 0x10fa58598> >>> c() 1 >>> c() 2面倒くさい。。
2019年5月10日金曜日
Python のClosure
Python では入れ子になった関数では外側の変数が見えるのだけど、そのままだと更新はできない。でもPython3ではnonlocalとして宣言することで更新可能になる。
登録:
コメントの投稿 (Atom)
0 件のコメント:
コメントを投稿