如何更改 __builtins__ 模块变量?
How to change __builtins__ module variable?
如果您 运行 此代码:
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__
如您所见运行s,但我不喜欢上面的程序。我喜欢禁用所有内置变量和函数。有什么办法吗?
如果你打印 mod.__dict__
,你可以看到它有 __builtins__
变量,例如任何 Python 模块。我想我必须将其值更改为 {}
,但我不知道如何更改。
我想我必须将其值更改为 {},但我不知道如何。
mod.__dict__["__builtins__"] = {}
如果您 运行 此代码:
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__
如您所见运行s,但我不喜欢上面的程序。我喜欢禁用所有内置变量和函数。有什么办法吗?
如果你打印 mod.__dict__
,你可以看到它有 __builtins__
变量,例如任何 Python 模块。我想我必须将其值更改为 {}
,但我不知道如何更改。
我想我必须将其值更改为 {},但我不知道如何。
mod.__dict__["__builtins__"] = {}