Wes McKinney の Python for Data Analysis を読んでいるのですが、よくわからないセクションがあります。以下のコードは、機能するクロージャーの例です。
def make_watcher():
have_seen = {}
def has_been_seen(x):
if x in have_seen:
return True
else:
have_seen[x] = True
return False
return has_been_seen
Wes は、覚えておくべき技術的な制限の 1 つは、内部状態オブジェクトを変更することはできますが (dict にキーと値のペアを追加するなど)、変数を囲んでいる関数スコープにバインドできないことだと述べています。誰かが技術的な制限によって彼が何を意味するかの例を提供できますか? 例を視覚化できるかどうかわかりません。