Выпущена финальная версия языка Python 3.0

Автор turbo, 04 Декабря 2008, 18:53

« предыдущая тема - следующая тема »

0 Пользователей и 1 Гость просматривают эту тему.

turbo

http://python.org/download/releases/3.0/

Официально объявлено о выпуске окончательной версии языка Python 3.0, готовой к промышленному использованию. Python 3.0 (так же известный как "Python 3000" или "Py3k") - это новая версия языка программирования, которая не совместима с линейкой 2.х. Язык в основном не изменился, но множество деталей, особенно касающиеся того как работают встроенные объекты, например словари и строки, - изменились значительно. Окончательно удалено много устаревших элементов языка. Стандартная библиотека Python была реорганизована в нескольких заметных местах.

Из новых возможностей Python 3.0 можно отметить:

    * Нарушение обратной совместимости со скриптами, разработанными для более ранних версий 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 ;
http://www.opennet.ru/opennews/art.shtml?num=19218