После 19 месяцев разработки представлен (http://www.python.org/getit/releases/3.3.0/) релиз языка программирования Python 3.3 (http://www.python.org). Python 3.3 является первой стабильной веткой, выпущенной после истечения моратория (https://www.opennet.ru/opennews/art.shtml?num=24234) на изменение синтаксиса языка, введённого вскоре после релиза Python 3.1 с целью предоставления возможности создателям альтернативных реализаций языка Python обеспечить в своих продуктах полную совместимость с классическим CPython 3.Среди добавленных в Python 3.3 новшеств (http://docs.python.org/py3k/whatsnew/3.3.html):
- Поддержка (http://www.python.org/dev/peps/pep-0405) виртуальных окружений, позволяющих использовать отдельные изолированные представления инсталляций Python, вынесенные в отдельные директории. Каждое виртуальное окружение содержит свой бинарный файл с интерпретатором Python (можно использовать разные версии Python) и свой набор пакетов. При этом все виртуальные окружения используют один общий набор стандартных библиотек Python. Для создания виртуальных окружений следует использовать модуль venv (http://docs.python.org/py3k/library/venv.html#module-venv);
- Поддержка (http://www.python.org/dev/peps/pep-0380/) синтаксиса "yield from выражение" для делегирования части операций одного генератора другому генератору. Указанное нововведение позволяет вынести из генератора часть кода, содержащую 'yield', и поместить её к другому генератору. Значения, возвращаемые сформированными подобным способом субгенераторами, становятся доступны делегирующему генератору;
- Новые модули: "faulthandler" для диагностики крахов, "ipaddress" для манипулирования IP-адресами и "lzma" для сжатия данных методом LZMA/XZ;
- Переработанная (http://www.python.org/dev/peps/pep-3151) иерархия исключений для системных вызовов (os) и ввода/вывода (io);
- Улучшение поддержки Unicode. Адаптивное представление (http://www.python.org/dev/peps/pep-0393) Unicode-строк, позволяющее забыть о различиях между "wide" и "narrow". В объекты str добавлена поддержка универсального синтаксиса "u'" для явного указания unicode строк. Обеспечено более компактное хранение unicode-строк;
- Переписанный на языке Си модуль "decimal" позволил до 80 раз увеличить производительность целочисленных операций;
- Использование по умолчанию importlib в качестве системы импорта (__import__);
- Поддержка (http://www.python.org/dev/peps/pep-0420/) отдельных пространств имён (Namespace) в пакетах, позволяющих разнести один Python пакет по нескольким директориям;
- Поддержка (http://www.python.org/dev/peps/pep-3155/) атрибута __qualname__ для явной идентификации родительских классов и функций;
- Возможность (http://www.python.org/dev/peps/pep-0409/) скрытия контекста исключений;
- Реализация (http://www.python.org/dev/peps/pep-0418) расширенных и независимых от платформы часов в модуле "time";
- Обеспечение (http://www.python.org/dev/peps/pep-0412) возможности совместного использования словарями идентичных ключей для хранения атрибутов объектов, что позволило существенно снизить потребление памяти для объектно-ориентированного кода;
- Добавлен класс "collections.ChainMap (http://docs.python.org/py3k/library/collections.html#collect...)" для связывания словарей в единое представление;
- В модулях "os" и "signal" добавлены обвязки для дополнительных POSIX-функций, таких как "sendfile()";
- По умолчанию включен режим рандомизации хэшей, нацеленный на решение проблемы с предсказуемыми коллизиями в реализации алгоритма хэширования для типов dict и set.
URL: http://www.python.org/getit/releases/3.3.0/
Новость: https://www.opennet.ru/opennews/art.shtml?num=34971