在 python 3.x 中删除 raw_input() 的原因是什么?

tom*_*m95 2 python theory python-2.x python-3.x

为什么它现在与 合并input(),首先使用它有什么好处?

hlt*_*hlt 5

raw_input的现在称为input。它仍然是读取用户输入的默认方式。

旧的input,而另一方面,用于eval任何用户输入。eval,然而,是危险的(如果我输入会发生什么import os; os.system("something evil")?)所以这个选项被删除了。

最初,正如我们从PEP 3111 中看到的那样,它打算删除两者,但他们选择保留raw_inputaround的功能,因为它真的很方便。

在讨论更改时,邮件列表中input也指出了旧的有害的想法:

就我个人而言,我认为input()不应该存在并且无论如何都必须去。我认为raw_input()值得讨论——我不需要它,但它只不过是一个方便的功能。

如果您确实需要旧的input,请使用eval(input(...)).