我了解到Python 3不向后兼容。
它不会影响使用旧版Python的很多应用程序吗?
Python 3的开发人员是如何认为将其向后兼容绝对必要的?
答案 0 :(得分:57)
Python 3.0实现了许多非常有用的功能并破坏了向后兼容性。它是故意的,所以即使Python 2.x代码在Python 3.x下可能无法正常工作,也可以实现很棒的功能。
所以,基本上, Python 3.0不是故意向后兼容的。 由于这一点,您可以从一整套新功能中受益。它甚至被称为“ Python 3000 ”或“ Python 3K ”。
来自“ Python 3.0中的新功能”(可用here):
Python 3.0,与2.6相比。 Python 3.0,也称为“Python 3000”或“Py3K”,是有史以来第一个故意向后兼容的Python版本。与典型版本相比,有更多更改,对所有Python用户而言,这些更改都很重要。尽管如此,在消化了这些变化之后,你会发现Python真的没有那么多变化 - 总的来说,我们主要是修复众所周知的烦恼和瑕疵,并删除了很多旧的瑕疵强>
可能被视为破坏向后兼容性但同时改进语言的一些最值得注意的功能是:
print
现在是一个函数,而不是一个语句,并将其用作语句将导致错误,cmp
不再支持排序sorted()
和list.sort()
等函数的参数,应替换为key
参数,int
现在与Python 2.x的long
相同,这使得数字处理不那么复杂,/
运算符现在默认为真正除法的运算符(您仍然可以使用//
进行分区),True
,False
和None
现在是保留字(因此您无法True, False = False, True
,BaseException
派生例外,必须提出&与Python 2.x不同,