З нових можливостей 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.
Подробиці
Взагалі, зміни дуже цікаві і потрібні. Цікаво, як буде проходити перехід відомих проектів на нову версію, все ж таки доведеться багато змінювати.
Немає коментарів:
Дописати коментар