- PEP 3118: новая реализация memoryview и документация протокола буфера. Новая реализация memoryview полностью устраняет все проблемы с владением и циколм жизни динамически выделяемых полей в Py_buffer, приводившие к различным падениям программ. Кроме того, были исправлены некоторые функции, которые приводили к падениям или возвращали неверный результат для не-непрерывного или многомерного ввода.
- PEP 393: гибкая реализация строк. строки unicode были изменены для поддержки различных внутренних представлений, зависящих от символа с наибольшим номером (1,2 или 4 байта) в строке. Это позволяет более эффективно использовать память и при этом даёт полный доступ к UCS-4. Для поддержки существующего API различные представления могут существовать параллельно, однако со временем от этой поддержки планируется отказаться. Изменения не затрагивают Python-код и касаются только C API
- PEP 3151: переработана иерархия OS и IO исключений. Иерархия исключений стала проще и детальнее. Теперь вам не надо заботиться выбором подходящего типа исключений между OSError, IOError, EnvironmentError, WindowsError, nmap.error, socket.error и select.error. Все эти исключения объединены теперь в OSError. Старые имена оставлены в качестве псевдонимов для совместимости. Более подробный перевод этого PEP.
- PEP 380: синтаксис делегации субгенератору. Добавлено выражение yield from, которое позволяет генератору делегировать часть своих операций другому генератору. Благодаря этому стало возможным вынести часть кода, содержащую yield в другой генератор. Более подробный перевод этого PEP.
- PEP 409: подавление контекста исключений. Представлен новый синтаксис, который позволяет отключить отображение контекста цепных исключений. Благодаря этому можно добиться более понятных сообщений об ошибках в приложениях, где происходит конвертация типов исключений. Более подробный перевод этого PEP.
-
- PEP 3155: квалифицированные имена классов и функций. Объекты функций и классов теперь имеют новый атрибут __qualname__, в котором отражён "путь" от модуля верхнего уровня к их определению. Для глобальных функций и классов он совпадает с __name__. Для других функций и классов из этого атрибута можно получить информацию о том, где находится их определение и как можно получить к ним доступ из глобальной области видимости. Например:
- Другие изменения в языке:
- добавлена поддержка unicode псевдонимам и именованным последовательностям (ошибка 12753)
- проверка на равенство range() теперь возвращает результат, основанный на равенстве последовательностей, генерируемых этими объектами (ошибка 13201)
- count(), find(), rfind(), index() и rindex() примененные к bytes и bytearray теперь в качестве первого аргумента принимают число в интервале 0-255 (ошибка 12170)
- memoryview объект теперь hashable, когда подлежащий объект так же hashable (ошибка 13411)
- Кроме этого были произведены некоторые изменения в различных библиотеках. Подробнее смотрите тут
понедельник, 5 марта 2012 г.
Что нового в Python 3.3
Вчера была выпущена версия Python 3.3.0 alpha 1. Что же нас ждёт?
Подписаться на:
Комментарии к сообщению (Atom)
Комментариев нет:
Отправить комментарий