Python的“受限执行模式”是什么?
当我设置了 __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 进行表达式计算有多安全?