четвер, 4 грудня 2008 р.

Новини: Python 3.0

Офіційно оголошено про випуск остаточної версії мови Python 3.0, готової до промислового використання. Python 3.0 (раніше відомий як "Python 3000" або "Py3k") - це нова версія мови програмування Python, яка не сумісна з нинішньою лінійкою 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;


Новину взято на opennet.ru.
Подробиці

Взагалі, зміни дуже цікаві і потрібні. Цікаво, як буде проходити перехід відомих проектів на нову версію, все ж таки доведеться багато змінювати.

Немає коментарів:

Дописати коментар