【发布时间】:2015-11-30 12:00:46
【问题描述】:
为什么现在要与input() 合并,当初使用它有什么好处?
【问题讨论】:
-
恰恰相反,他们删除了
input的功能。 -
其实是已经去掉的input()函数,Python 3.x的input()是老的raw_input()函数。
标签: python python-3.x theory python-2.x
为什么现在要与input() 合并,当初使用它有什么好处?
【问题讨论】:
input的功能。
标签: python python-3.x theory python-2.x
旧的raw_input 现在称为input。它仍然是读取用户输入的默认方式。
另一方面,旧的input 习惯于eval,无论用户输入什么。但是,eval 很危险(如果我输入 import os; os.system("something evil") 会发生什么?),所以这个选项被删除了。
最初,正如我们从PEP 3111 看到的那样,它打算将两者都删除,但他们选择保留raw_input 的功能,因为它真的很方便。
在讨论更改时,mailing lists 上也指出了旧的 input 有害的想法:
就我个人而言,我认为
input()不应该存在并且必须离开 无论。我认为raw_input()值得讨论——我不会 需要它,但它只是一个便利功能。
如果您真的需要旧的input,请使用eval(input(...))。
【讨论】:
您几乎不需要 python2 input 提供的功能,但初学者经常使用它,在他们的应用程序中创建错误消息或隐藏错误。
见PEP 3111。
【讨论】: