python - 以下代码行 `eval("os.system('clear')", {})` 会做什么?
问题描述
我听说这是灾难性的。为什么?
import os
eval("os.system('clear')", {})
编辑 :
添加import os
. 将代码视为几行更大的程序。所有必要的进口都已到位,等等......
解决方案
那条线没有做任何事情 -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
当你不知道它会做什么或用户输入时不要运行。
推荐阅读
- c# - 将未指定类型定义为类内部的静态变量
- python - ContractNotFound:没有部署合约
- angular - 无法在 Angular 中创建 x-www-form-urlencoded POST
- python - 如何使用 python +selenium 打开具有相同 url 的多个浏览器选项卡
- javascript - 使用javascript的ajax中未定义的索引错误
- python - 为什么我的列表没有更新,尽管附加到列表中?
- google-cloud-platform - 站点停机/服务器成本是应有的 10 倍/缺少 VM 实例 - Google Cloud Platform
- jinja2 - jupyter nbconvert / jinja2 在哪里寻找模板?
- javascript - 如何使用一组 {x,y} 对象来制作图表?
- firebase - Firestore 数据不是来自打开多个选项卡、启用持久性和 synchronizeTabs 的缓存:true