Python的“受限执行模式”是什么?

1 投票
1 回答
2208 浏览
提问于 2025-04-15 17:34

当我设置了 __builtins__ 后,想要访问函数的全局变量时,出现了这个错误

>>> def f(): pass
... 
>>> f.func_globals
{'f': <function f at 0x00B83270>, '__builtins__': <module '__builtin__' (built-in)>}
>>> __builtins__ = {}
>>> f.func_globals
Traceback (most recent call last):
  File "<string>", line 1, in <string>
RuntimeError: restricted attribute
>>> 

这是为什么呢?我可以在哪里找到更多相关的信息?我能用它来保护表达式的计算吗?

查看问题:使用 eval 进行表达式计算有多安全?

1 个回答

3

可惜的是,这个概念早就过时了,具体可以查看文档。最开始的想法是提供一个安全的、隔离的模式,但这个想法并没有成功,所以从2.3版本开始就被放弃和不再推荐使用了。

撰写回答