Skip to main content
 首页 » 编程设计

python之如何更改 __builtins__ 模块变量

2024年10月24日26lyj

如果你运行这段代码:

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__"] = {}