| ||
Язык программирования Python. Часть VПятая статья данного цикла. Альтернативные реализации. Что нового в 2.0. Олег Бройтман Другие реализацииХотя у Python существует главная реализация, называемая CPython (потому что написана на C), существуют и альтернативные реализации интерпретатора. Jython состоит из двух частей; это, во-первых, компилятор из Питона в Джава byte-code, что позволяет писать апплеты на Питоне, а не Джаве; а во-вторых, интерпретатор Питона, написанный на Джаве. Stackless Python специальный патч к CPython, позволяющий не использовать стандартный стек; это позволяет существенно увеличить глубину рекурсии и создавать такие нестандартные вещи как сопрограммы и генераторы (впрочем, в Python 2.2 генераторы реализованы без использования Stackless). Vyper – это альтернативная реализация на языке Caml; Vyper – это и интерпретатор, и компилятор. Интересное название, кстати. Viper – это «гадюка» (в обоих смыслах этого слова). Что нового в последних версиях ПитонаПосле трех увольнений (о чем я писал в первой статье), команда разработчиков нашла наконец теплое местечко, и развитие Питона понеслось вперед семимильными шагами. Python 2.1 и 2.2 правильнее было бы нумеровать 3.0 и 4.0. Python 1.6Между версиями 1.5.2 и 2.0 Гвидо, еще работая в CNRI, выпустил версию 1.6. Это контрактная версия (Contractual Obligations release), которую он обязался выпустить перед первым увольнением. На нее не следует обращать большого внимания, а можно сразу перейти к 2.0. Python 2.0Наиболее существенное в этой версии – изменение подхода к разработке. Дерево CVS переехало на SourceForge. Благодаря этому процесс разработки стал более открытым, более видимым для пользователей, появились механизмы обратной связи (bug tracker). Появился механизм Python Enhancement Proposals (PEPs). PEP – это формализованный документ, предлагающий введение в язык новой конструкции, или в интерпретатор новой функциональности, или в библиотеку нового кода. Написать PEP может любой, и после обсуждения разработчики принимают решение – включать ли новый код в Питон, или отвергнуть. Самая большая новая особенность Python 2.0 – поддержка Unicode. Появился новый тип данных – уникодовые строки, новые литералы, новые функции манипуляции строками, преобразования ASCII строк в Unicode и обратно, таблицы соответствия различных кодировок (koi8-r, cp1251 и прочие русские кодировки включены). Модуль codecs содержит функции перекодирования, включая функцию open, которая позволяет открыть файл с указанием кодировки файла, и кодировки данных в программе. Операции чтения/записи буду перекодировать данные автоматически. Соответственно, изменилась реализация регулярных выражений – они полностью поддерживают unicode. У строк теперь появились методы: "Hello".upper(). Но строки по-прежнему неизменяемые объекты. Методы строк возвращают в результате операции новую строку. Методы нужны для того, чтобы единообразным образом обрабатывать как ASCII, так и Unicode строки. Следующее новшество – списковое включение (list comprehension). Синтаксис его прост: [ expression for expr in sequence1 for expr2 in sequence2 ... for exprN in sequenceN if condition ]. Это эквивалентно коду result = [] for expr1 in sequence1: for expr2 in sequence2: ... for exprN in sequenceN: if (condition): result.append(expression) Расширенное присваивание ( Появился новый, упрощенный синтаксис для вызова функций с переменным числом параметров. Это особенно удобно для вызова родительского конструктора – раньше для этого приходилось использовать apply. Появилась возможность переопределять в классах встроенный оператор in. Были изменены алгоритмы сравнения и удаления рекурсивных структур данных. Появился новый модуль gc для управления сборкой мусора; этот модуль может отслеживать рекурсивные структуры, на которые больше нет ссылок, и удалять их. В версии 2.0 наконец-то появился пакет Distutils – набор средств для создания программ инсталляции ваших модулей, пакетов и программ. В эту версию включен также большой пакет PyXML, содержащий как низкоуровневые средства (PyExpat – интерфейс к expat), так и высокоуровневые – SAX2 и DOM. В нем применен механизм для установки собственных пакетов пользователя, так что Появилась поддержка OpenSSL. Если в момент компиляции Питона на машине имеются библиотеки OpenSSL – они будут подлинкованы к модулю socket, а библиотека httplib обретет обработчик протокола https. Появилось много новых модулей, среди которых atexit (регистрация списка функций деинициализации модулей), mmap (отображаемые в память файлы, поддержка которых есть в UNIX и Windows), gettext (интерфейс к GNU gettext), robotparser (разбор файлов robots.txt), zipfile (ZIP-файлы, конечно же) и imputil (упрощают написание механизмов импорта). Источник - SoftТерра, http://www.softerra.ru
| ||
Copyright © "Internet Zone", http://www.izcity.com/, info@izcity.com |