Вы наверняка слышали, что Python 2 давно не поддерживается. Живой пример того, во что превращается такой переезд, — EVE Online. Прошлый раз версию интерпретатора в игре меняли в 2010 году.
Масштаб: 2,4 млн строк Python примерно в 20 тысячах файлов, поверх 23 лет данных живых игроков — персонажи, навыки, имущество, внутриигровая валюта. Часть кода написана по правилам Python 2.3 и 2.5, которые тройка уже не принимает.
При пробной компиляции обоими интерпретаторами 95,9% файлов собрались сразу. Осталось около 3300 строк явных несовместимостей: примерно 1500 старых
print, 800 литералов вида 123L, 600 старых форм except и 50 операторов <>. Это как раз то, что чинит 2to3.Опаснее другое: около 20 тысяч строк синтаксически корректны в обеих версиях, но работают по-разному. Классический пример, который стоит запомнить:
1 / 2 даёт 0 в Python 2 и 0.5 в Python 3. Такое не найдёт ни компилятор, ни линтер — только тесты и внимательное чтение.В нашем канале Zen of Python разобрали план миграции подробнее.
#python #основы