为什么Python 3不向后兼容?

nee*_*meg 67 python backwards-compatibility python-3.x

我了解到Python 3不向后兼容.

它会不会影响使用旧版Python的很多应用程序?

Python 3的开发人员怎么不认为使其向后兼容是绝对必要的?

Tad*_*eck 60

Python 3.0是向后兼容的,为什么?

Python 3.0实现了许多非常有用的功能并破坏了向后兼容性.它是故意这样做的,所以即使Python 2.x代码在Python 3.x下可能无法正常工作,也可以实现很棒的功能.

因此,基本上,Python 3.0不是故意向后兼容的.多亏了这一点,您可以享受全新的功能.它甚至被称为" Python 3000 "或" Python 3K ".

从" Python 3.0中的新功能 "(可在此处获得):

Python 3.0与2.6相比.Python 3.0,也称为"Python 3000"或"Py3K",是有史以来第一个故意向后兼容的Python版本.与典型版本相比,有更多更改,对所有Python用户而言,这些更改都很重要.尽管如此,在消化了这些变化之后,你会发现Python真的没有那么大的改变 - 总的来说,我们主要是修复众所周知的烦恼和瑕疵,并消除了很多旧的瑕疵.

Python在3.0中具有新特性,打破了向后兼容性

可能被视为破坏向后兼容性但同时改进语言的一些最显着特征是:

  • print 现在是一个函数,而不是一个语句,并将其用作语句将导致错误,
  • 各种函数和方法现在返回迭代器或视图而不是列表,这使得迭代结果更加节省内存(您不需要将整个结果列表存储在内存中),
  • cmp排序函数的参数类似于sorted()list.sort()不再受支持,应该用key参数替换,
  • int现在与Python 2.x相同long,这使得数字处理不那么复杂,
  • /默认情况下,运营商现在是真正划分的运营商(您仍然可以//用于楼层划分),
  • Python 3.x中的文本现在默认为Unicode,
  • True,FalseNone现在保留字(所以你不能做True, False = False, True,
  • 改变了元类的用法,
  • 需要从BaseExceptionPython 2.x中派生异常,必须提出和捕获异常,
  • 以及更多其他更改,使Python更具可读性,一致性和显性,

  • @ julio.alegria:你能详细说明吗?实际上Python 3.x意味着要取代Python 2.x,并且如"[_ Python 3.0_中的新功能](http://docs.python.org/dev/whatsnew/2.7.html)"中所述:"_Python 2.7计划成为2.x版本中的最后一个版本,因此我们努力使其成为长期的良好版本.为了帮助移植到Python 3,Python 3.x系列中的一些新功能已被包含在2.7._". (5认同)
  • 需要澄清的是,Python 3.x 并不是 Python 2.x 的升级版或后续版本,而是另一个分支。 (2认同)