モジュールは、実行のある時点で定義された名前など、そのコンテキストを追跡するための辞書を保持します。この辞書はmodule
がインポートされた場合vars(module)
(又はmodule.__dict__
)を介してアクセス、またはモジュール自体にlocals
組み込み関数の呼び出しによってすることができる。地方辞書はいつ設定されますか?
更新と現在のローカルシンボルテーブルを表す辞書を返します。
しかし、地元の辞書に関数からアクセスしようとすると、ちょっと混乱しました。のみ、以下を含むスクリプトの出力は空の辞書です:
def list_locals():
print(locals())
list_locals()
しかし、スクリプトが排他的に以下が含まれている場合、一方で、出力は__name__
、__doc__
や他のモジュールを含む、予想された辞書ですレベル変数:
print(locals())
したがって、地域辞書の内容はいつ設定されますか? さらに、locals
関数の定義で「更新」とは何ですか?
モジュールレベルで 'print(locals()is globals())' –
@Chris_Randsこれは私の混乱の一部でした。 –