Релиз Python 3.0 доступен для скачивания с оф. сайта.
Не совместим с веткой 2.x
Python 3.0 (a.k.a. "Python 3000" or "Py3k") is a newИз новых возможностей Python 3.0 можно отметить:
version of the language that is incompatible with the 2.x line of
releases. The language is mostly the same, but many details,
especially how built-in objects like dictionaries and strings work,
have changed considerably, and a lot of deprecated features have
finally been removed. Also, the standard library has been reorganized
in a few prominent places.
- Нарушение обратной совместимости со скриптами, разработанными для более ранних версий Python;
- Удаление дублирующих конструкторов и модулей;
- Вместо оператора форматирования строк "%" использована глобальная функция и метод format(), например "The story of {0}, {1}, and {c}".format(a, b, c=d) или print(format(10.0, "7.3g")).
- Удалены методы dict.iterkeys(), dict.itervalues() и dict.iteritems(). Методы dict.keys(), dict.values() и dict.items() будут возвращать контейнер объектов (итератор);
- Возможность аннотирования параметров функций и возвращаемых значений, например def compile(source: "something compilable").
- Замена оператора print, который широко используется для вывода, на функцию print();
- Использование Unicode в качестве основной кодировки представления строк (единый тип str, вместо раздельных str и unicode);
- Для хранения бинарных данных представлен тип bytes;
- Тип long переименован в int, деление int переменных возвращает float, для получения целого результата нужно использовать //;
- Для обозначения неравенств, вместо "<>" нужно будет использовать "!=";
- Признаны устаревшими модули: cPickle, imageop, audiodev, Bastion, bsddb185, exceptions, linuxaudiodev, md5, MimeWriter, mimify, popen2, rexec, sets, sha, stringold, strop, sunaudiodev, timing, xmllib, new;
- Удалены функции os.tmpnam(), os.tempnam() и os.tmpfile(), вместо них нужно использовать модуль tempfile;
- Все исключения теперь должны порождаться от класса BaseException;
- Новый синтаксис для создания мета-классов (Metaclass), реализация абстрактных базовых классов (Abstract Base Class), возможность использования декораторов для классов;
- Новая реализация библиотеки ввода/вывода, имеющая обратно совместимый API ;