我了解到 Python 3 不向后兼容。
它不会影响很多使用旧版本Python的应用程序吗?
Python 3 的开发者怎么会不认为绝对有必要使其向后兼容呢?
Python 3.0 向后兼容吗?为什么?
Python 3.0 实现了很多非常有用的功能,但破坏了向后兼容性。它是有意这样做的,因此即使 Python 2.x 代码在 Python 3.x 下可能无法正常工作,也可以实现出色的功能。
所以,基本上,Python 3.0 故意不向后兼容. 因此,您可以从一组全新的功能中受益。甚至被称为“蟒蛇3000" or "Python 3K".
From "Python 3.0 的新增功能“ (可用的here):
Python 3.0 与 2.6 相比。 Python 3.0,也称为“Python 3000”或“Py3K”,是第一个故意向后不兼容的 Python 版本。与典型版本相比,其中的更改更多,而且对所有 Python 用户来说也更重要。然而,在消化了这些变化之后,你会发现Python实际上并没有改变那么多——总的来说,我们主要是修复众所周知的烦恼和缺陷,并删除许多旧的东西.
Python 3.0 中的新功能打破了向后兼容性
一些最显着的功能可能被认为破坏了向后兼容性,但同时改进了语言,包括:
-
print
现在是一个函数,而不是语句,将其用作语句将导致错误,
- 各种函数和方法现在返回迭代器或视图而不是列表,这使得迭代其结果更加节省内存(您不需要将整个结果列表存储在内存中),
-
cmp
排序函数的参数,例如sorted()
and list.sort()
不再受支持,应替换为key
争论,
-
int
现在与 Python 2.x 相同long
,这使得数字处理变得不那么复杂,
-
/
默认情况下,运算符现在是真正除法的运算符(您仍然可以使用//
用于楼层划分),
- Python 3.x 中的文本现在默认为 Unicode,
-
True
, False
and None
现在是保留字(所以你不能做True, False = False, True
,
- 改变了元类的用法,
- 例外情况需要派生自
BaseException
,必须以与 Python 2.x 不同的方式引发和捕获,
- 以及更多其他更改,使 Python 更具可读性、一致性和明确性,
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)