我听说这是灾难性的。为什么?
import os
eval("os.system('clear')", {})
添加了import os
。将代码视为大型程序的几行。所有必要的导入均已就绪,等等。
答案 0 :(得分:0)
该行不执行任何操作-os.system('clear')
会清除屏幕,但是由于未导入os
,因此只是错误。
该行的{}
部分在没有内置代码,变量或上下文的情况下评估代码,因此,即使您较早导入os
,它仍然会出错:
>>> eval("os.system('clear')", {})
NameError: name 'os' is not defined
>>> import os
>>> eval("os.system('clear')", {})
NameError: name 'os' is not defined
eval
本身非常危险-当您不知道它会做什么或在用户输入时,请勿运行eval
。