gpt4 book ai didi

python - python 2to3 中的 eval(input())

转载 作者:太空宇宙 更新时间:2023-11-03 13:21:32 24 4
gpt4 key购买 nike

来自 Python 2to3 doc :

input:

Converts input(prompt) to eval(input(prompt))

在使用 Python 2 几年后,我目前正在尝试学习 Python 3。谁能解释一下为什么该工具会在调用 input 之前插入 eval,并且我是否应该在我所有的 Python 3 代码中这样做?

最佳答案

python 2 的旧输入行为已被删除,python 3 的当前输入是以前命名为 raw_input 的内容。 raw_input 和 python 3 input 总是返回一个字符串,这与试图将输入计算为表达式的 input 不同。

2to3 工具插入了一个 eval,因为它无法判断您是否依赖于自动评估其输入的旧输入。旧的输入行为被认为是错误的,因为您几乎可以计算任何有效的 python 表达式,因此任何使用 input() 的 python 程序都有一个明显的安全漏洞。转换后,您应该评估 eval 的每次使用,并确定该部分代码是否将接收任何不受信任的用户输入。

你永远不应该使用 eval(input()),除非是在一次性脚本中。无法保证 eval 的安全。

关于python - python 2to3 中的 eval(input()),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12168978/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com