Я узнал, что 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" (доступно здесь):
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,