下記のようなPython コードがあるとします。
namespace={....} #辞書
func = compile(codeString, '<string>', "exec")
exec(func, namespace)
不思議な現象:
namespaceは本来コンパイル済みの関数funcに変数値やパラメータを提供するために存在するのに、どうして、execが実行された後、namespaceに沢山の辞書項目が追加されるのでしょうか-----要は元の辞書内容の後ろにPythonのあらゆる固有関数名やデータタイプ名に関する辞書が追加されます。
これらは余計な情報だし、プログラマムの中にたくさんのexecが実行されれば、メモリの浪費ではと思いますね。
Q1: 理由はなんでしょうか。
Q2: ついでに、元の辞書の後ろに多量の辞書データが追加された場合、
辞書の引く時間に影響はないでしょうか。
宜しくお願いします
回答3件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2018/02/04 13:38 編集
2018/02/04 14:17
2018/02/05 12:13
2018/02/05 12:41