我了解到Python 3不向后兼容。
这难道不会影响那些使用旧版本Python的应用程序吗?
Python 3的开发人员为什么不认为保持向后兼容非常重要?
我了解到Python 3不向后兼容。
这难道不会影响那些使用旧版本Python的应用程序吗?
Python 3的开发人员为什么不认为保持向后兼容非常重要?
Python 3.0 实现了许多非常有用的功能,并破坏了向后兼容性。这是故意为之的,以便即使 Python 2.x 代码在 Python 3.x 下无法正常工作,也可以实现这些伟大的特性。
因此,Python 3.0 故意不支持向后兼容 。 由此,你可以受益于全新的一组功能。它甚至被称为“Python 3000”或“Python 3K”。
来自“Python 3.0 的新功能”(这里):
与 2.6 相比,Python 3.0,也被称为“Python 3000”或“Py3K”,是第一个有意破坏向后兼容性的 Python 发布版。与典型版本相比,其中的更多变化对于所有 Python 用户都很重要。尽管如此,在消化这些变化之后,你会发现 Python 并没有发生太大的变化 - 总的来说,我们主要是修复已知的烦人的问题,除去了许多旧的垃圾。
一些最显著的功能可能被视为破坏向后兼容性,但同时也改进了语言:
print
现在是一个函数,而不是语句,将其用作语句将导致错误,sorted()
和list.sort()
等排序函数的cmp
参数不再被支持,应该替换为key
参数。int
现在与Python 2.x中的long
相同,使得数字处理更简单。/
运算符现在默认为真除法运算符(你仍然可以使用//
进行地板除法)。True
、False
和None
现在是保留字(因此不能执行True, False = False, True
的操作)。BaseException
派生,必须在Python 2.x中以不同的方式抛出和捕获。