Python 的 eval() 有什么作用?

新手上路,请多包涵

在我正在阅读的关于 Python 的书中,它一直使用代码 eval(input('blah'))

我阅读了文档,并且理解了它,但我仍然看不到它如何更改 input() 函数。

它有什么作用?有人可以解释吗?

原文由 Billjk 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 528
2 个回答

eval 函数允许 Python 程序在自身内部运行 Python 代码。

评估示例(交互式外壳):

 >>> x = 1
>>> eval('x + 1')
2
>>> eval('x')
1

原文由 BYS2 发布,翻译遵循 CC BY-SA 4.0 许可协议

eval() 将字符串解释为代码。之所以有这么多人警告您不要使用它,是因为用户可以使用它作为在计算机上运行代码的选项。 If you have eval(input()) and os imported, a person could type into input() os.system('rm -R *') which would delete all your files in your home directory. (假设你有一个 unix 系统)。使用 eval() 是一个安全漏洞。如果您需要将字符串转换为其他格式,请尝试使用这样做的东西,例如 int()

原文由 CoffeeRain 发布,翻译遵循 CC BY-SA 3.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题