为什么Python 3不兼容?

我已经了解到,Python 3不是向后兼容的。

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

Python 3的开发人员如何不认为将其向后兼容是绝对必要的?

Python 3.0向后兼容,为什么?

Python 3.0实现了很多非常有用的function,并且打破了向后兼容性。 它是有目的的,所以即使Python 2.x代码在Python 3.x下可能无法正常工作,仍然可以实现强大的function。

所以, Python 3.0基本上不是故意向后兼容的多亏了这一点,你可以从一个全新的function中受益。 它甚至被称为“ Python 3000 ”或“ Python 3K ”。

从“ Python 3.0中的新function ”(可在此获得 ):

Python 3.0相比,2.6。 Python 3.0也被称为“Python 3000”或“Py3K”, 是有史以来第一个故意向后兼容的Python版本 。 比典型的版本有更多的变化,对于所有Python用户来说更重要。 然而,在消化这些变化之后,你会发现Python并没有发生太大的变化,总的来说, 我们主要是修复着名的烦恼和瑕疵,并去掉了很多旧的东西

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

一些可以被认为是突破后向兼容性,但同时改进语言的最显着特征是:

  • print现在是一个函数,而不是一个声明,并使用它作为语句将导致错误,
  • 各种函数和方法现在返回一个迭代器或视图而不是列表,这使得遍历其结果的内存更加高效(不需要将所有结果列表存储在内存中),
  • sorting函数sort sorted()list.sort() cmp参数不再支持,应该用key参数replace,
  • int现在与Python 2.x一样long ,这使得数字处理更加简单,
  • /运营商现在是一个默认的真正划分运营商(你仍然可以使用/地板划分),
  • Python 3.x中的文本现在是默认的Unicode,
  • TrueFalseNone现在是保留字(所以你不能做到True, False = False, True
  • 改变了元类的用法,
  • 必须从BaseException派生BaseException ,必须以与Python 2.x不同的方式引发和捕获exception,
  • 还有其他更多的变化,使Python更具可读性,一致性和明确性,