如果运行此代码:
src = "import os"
d = dict(__builtins__={})
exec src in d
Python 说:
ImportError: __import__ not found
这就是我喜欢做的事情,但是在创建(或加载)新模块时:
import imp
mod = imp.new_module("foo")
src = "import os"
exec src in mod.__dict__
正如你所看到的,它运行了,但我喜欢它不像上面的程序那样。我喜欢禁用所有内置变量和函数。有什么办法可以做到这一点吗?
如果打印 mod.__dict__
,您可以看到它有 __builtins__
变量,例如任何 Python 模块。我想我必须将其值更改为 {}
,但我不知道如何操作。
最佳答案
我想我必须将其值更改为 {},但我不知道如何操作。
mod.__dict__["__builtins__"] = {}
关于python - 如何更改 __builtins__ 模块变量?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31211382/