對於代碼 '打印':爲什麼我可以打電話從 'EVAL'
#!/usr/bin/python
src = """
print '!!!'
import os
"""
obj = compile(src, '', 'exec')
eval(obj, {'__builtins__': False})
我得到的輸出:
!!!
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
兩個 '打印' 和 '進口' 的語言結構。爲什麼'eval'限制使用'import'但不限制'print'?
P.S.我正在使用python 2.6
更新:問題不是「爲什麼導入不起作用?」但「爲什麼打印工作?」是否有一些架構限制或其他?
問題不是「爲什麼導入不起作用?」但「爲什麼打印工作?」 – Tiendil 2010-10-16 17:04:53
打印成爲python 3k中的一種方法,我敢打賭它不會工作:) – Sacha 2010-10-16 17:05:48