2

このコードを実行すると:

src = "import os"
d = dict(__builtins__={})
exec src in d

パイソンは次のように述べています。

ImportError: __import__ not found

それが私がやりたいことですが、新しいモジュールを作成する(またはロードする)とき:

import imp
mod = imp.new_module("foo")
src = "import os"
exec src in mod.__dict__

ご覧のとおり実行されますが、上記のプログラムのように実行されないのが好きです。組み込みの変数と関数をすべて無効にするのが好きです。これを行う方法はありますか?

を印刷すると、任意の Python モジュールなどの変数が含まれmod.__dict__ていることがわかります。__builtins__その値を に変更する必要があると思いますが{}、方法がわかりません。

4

1 に答える 1

2

その値を {} に変更する必要があると思いますが、方法がわかりません。

mod.__dict__["__builtins__"] = {}
于 2015-07-03T17:37:11.383 に答える