【问题标题】:What was the reason for removing raw_input() in python 3.x? [closed]在 python 3.x 中删除 raw_input() 的原因是什么? [关闭]
【发布时间】:2015-11-30 12:00:46
【问题描述】:

为什么现在要与input() 合并,当初使用它有什么好处?

【问题讨论】:

  • 恰恰相反,他们删除了input的功能。
  • 其实是已经去掉的input()函数,Python 3.x的input()是老的raw_input()函数。

标签: python python-3.x theory python-2.x


【解决方案1】:

旧的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(...))

【讨论】:

    【解决方案2】:

    您几乎不需要 python2 input 提供的功能,但初学者经常使用它,在他们的应用程序中创建错误消息或隐藏错误。

    PEP 3111

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-04-12
      • 1970-01-01
      • 2014-01-14
      • 2016-09-18
      • 1970-01-01
      • 2022-01-25
      • 2011-06-22
      相关资源
      最近更新 更多