小编Tie*_*dil的帖子

为什么我可以从'eval'调用'print'

代码:

#!/usr/bin/python

src = """
print '!!!'
import os
"""

obj = compile(src, '', 'exec')
eval(obj, {'__builtins__': False})
Run Code Online (Sandbox Code Playgroud)

我得到输出:

!!!
Traceback (most recent call last):
  File "./test.py", line 9, in <module>
    eval(obj, {'__builtins__': False})
  File "", line 3, in <module>

ImportError: __import__ not found
Run Code Online (Sandbox Code Playgroud)

'print'和'import'都是语言结构.为什么'eval'限制使用'import'但不限制'print'?

PS我正在使用python 2.6

更新:问题不是"为什么导入不起作用?" 但"为什么印刷工作?" 是否有一些架构限制或其他?

python printing import eval built-in

7
推荐指数
1
解决办法
3354
查看次数

标签 统计

built-in ×1

eval ×1

import ×1

printing ×1

python ×1