The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]



"Увидел свет язык программирования Python 3.5.0"
Версия для распечатки Пред. тема | След. тема
Форум Разговоры, обсуждение новостей
Исходное сообщение [ Отслеживать ]

"Увидел свет язык программирования Python 3.5.0" +10 +/
Сообщение от opennews (ok), 13-Сен-15, 20:45 
После 18 месяцев разработки представлен (https://www.python.org/downloads/release/python-350/) значительный релиз языка программирования Python 3.5.

Среди добавленных в Python 3.5 новшеств (https://docs.python.org/3.5/whatsnew/3.5.html):

-  Добавлен (https://www.python.org/dev/peps/pep-0441/) новый модуль zipapp (https://docs.python.org/3.5/library/zipapp.html#module-zipapp), предоставляющий API и утилиту командной строки для создания упакованных в один файл приложений, которые можно запустить командой "python приложение.pyz". Для создания исполняемого архива достаточно поместить все файлы программы в отдельную директорию, создать выполняемый по умолчанию скрипт __main__.py и выполнить команду "python -m zipapp имя_директории";

-  Расширено (https://www.python.org/dev/peps/pep-0448/) применение операторов распаковки "*" и "**", которые теперь можно использовать для произвольного числа распаковок при вызове функции или при манипуляциях с множествами, кортежами, списками и словарями.
(ранее допускалась только одна распаковка). Например, для функции "def fn(a, b, c, d)" можно выполнить fn(**{'a': 1, 'c': 3}, **{'b': 2, 'd': 4})"), а для словаря - "{*range(4), 4, *(5, 6, 7)}";

-  Поддержка (https://www.python.org/dev/peps/pep-0461/) использования оператора форматирования вывода "%" для объектов bytes (https://docs.python.org/3.5/library/functions.html#bytes) и bytearray (https://docs.python.org/3.5/library/functions.html#bytearray) по аналогии с тем, как выполняется форматирование строк. Например, выполнение "b'x=%i y=%f' % (1, 2.5)" приведёт к выводу "b'x=1 y=2.500000'";

-  В стандартной библиотеке представлена (http://www.python.org/dev/peps/pep-0471) новая функция os.scandir() (https://docs.python.org/3.5/library/os.html#os.scandir) для очень быстрого обхода содержимого директорий. Выполнение os.walk() на базе новой функции работает в 3-5 раз быстрее на  POSIX-системах и в 7-20 раз быстрее в Windows, за счёт сокращения числа вызовов os.stat();

-  Возможность (http://www.python.org/dev/peps/pep-0475) автоматического повторного выполнения прерванных системных вызовов  без установки отдельных обработчиков EINTR или InterruptedError;

-  Представлен (http://www.python.org/dev/peps/pep-0484)  модуль typing (https://docs.python.org/3.5/library/typing.html#module-typing), который позиционируется в качестве нового стандарта для задания аннотаций типов. При подключении модуля можно предоставить данные о типах аргументов и возвращаемого значения функции, например  "def greeting(name: str) -> str";

-  Реализована (http://www.python.org/dev/peps/pep-0485) функция
math.isclose() (https://docs.python.org/3.5/library/math.html#math.isclose) для приблизительного сравнения значений с заданным уровнем точности. Например,  "math.isclose(5.0, 4.99998, abs_tol=0.00003)" вернёт True;
-  В ланчере Python для платформы Windows добавлена (http://www.python.org/dev/peps/pep-0486) поддержка работы в виртуальных окружениях;
-  Искоренена (http://www.python.org/dev/peps/pep-0488) концепция PYO-файлов, использовавшихся для хранения оптимизированного байткода. Для размещения как оптимизированного, так и неоптимизированного байткода теперь применяются единые файлы ".pyc";

-  Новый механизм (http://www.python.org/dev/peps/pep-0489) для загрузки модулей-расширений, обеспечивающий возможность инициализации в несколько стадий;
-  Значительно улучшены средства асинхронного программирования, благодаря поддержке (https://www.python.org/dev/peps/pep-0492/) нового async- и await-синтаксиса для определения сопрограмм, асинхронно выполняемых объектов и итераций. Например, для создания и вызова сопрограммы можно указать "async def http_get(domain)" и "data = await db.fetch('SELECT ...')";
-  Возможность (http://www.python.org/dev/peps/pep-0479) изменения обработки  исключений StopIteration (https://docs.python.org/3.5/library/exceptions.html#StopIter...) внутри генераторов;
-  Класс collections.OrderedDict (https://docs.python.org/3.5/library/collections.html#collect...) переписан на языке Си, что позволило ускорить его выполнение от 4 до 100 раз. На Си также переписана функция functools.lru_cache() (https://docs.python.org/3.5/library/functools.html#functools...);
-  Добавлен новый вызов  subprocess.run() (https://docs.python.org/3.5/library/subprocess.html#subproce...) для быстрого запуска подпроцессов;
-  В стандартной библиотеке по умолчанию отключена поддержка SSLv3;
-  Добавлен (https://www.python.org/dev/peps/pep-0465/) новый оператор "@" для умножения матриц. Например, вместо "S = dot((dot(H, beta) - r).T, dot(inv(dot(dot(H, V), H.T)), dot(H, beta) - r))" теперь можно использовать более понятное представление "S = (H @ beta - r).T @ inv(H @ V @ H.T) @ (H @ beta - r)".


URL: https://www.python.org/downloads/release/python-350/
Новость: http://www.opennet.me/opennews/art.shtml?num=42952

Ответить | Правка | Cообщить модератору

Оглавление
Увидел свет язык программирования Python 3.5.0, opennews, 13-Сен-15, 20:45  [смотреть все]
Форумы | Темы | Пред. тема | След. тема



Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру