Logo Host-telecom.com — профессиональный хостинг в Европе! Море(!) аналитической информации!
IT-консалтинг Software Engineering Программирование СУБД Безопасность Internet Сети Операционные системы Hardware

💰 Самые низкие цены на домены

🔒 Отличный хостинг на SSD c бесплатными SSL

💻 Огромнейший выбор dedicated выделенных серверов

Виртуальные VPS серверы в РФ и ЕС

Dedicated серверы в РФ и ЕС

По промокоду CITFORUM скидка 30% на заказ VPS\VDS

Мощные сервера

VPS с гибкой конфигурацией: за 1€

Мощные выделенные сервера: от 25€

Собственный Дата-Центр
Поддержка 24/7

Вышел язык программирования Python 3.8

После полутора лет разработки представлен значительный релиз языка программирования Python 3.8. Корректирующие обновления для ветки Python 3.8 планируется выпускать в течение 18 месяцев. Критические уязвимости будут исправляться 5 лет до октября 2024 года. Корректирующие обновления для ветки 3.8 будут выходить раз в два месяца, на декабрь намечен первый корректирующий релиз Python 3.8.1.

Среди добавленных новшеств:

  • Поддержка операций присвоения внутри сложных выражений. При помощи нового оператора ":=" появилась возможность выполнять операции присвоения значений внутри других выражений, например, чтобы избежать двойного вызова функций в условных операторах и при определении циклов:
    
       if (n := len(a)) > 10:
          ...
    
    

    while (block := f.read(256)) != '': ...

  • Поддержка нового синтаксиса задания аргументов функции. При перечислении аргументов во время определения функции теперь можно указывать признак "/", позволяющий отделить аргументы, значения которым могут быть присвоены только на основе порядка перечисления значений во время вызова функции, от аргументов, допускающих присвоение в произвольном порядке (синтаксис "переменная=значение"). С практической стороны новая возможность позволяет в функциях на языке Python полностью эмулировать поведение существующих функций на языке Си, а также избежать привязок к конкретным именам, например, если имя параметра планируется изменить в будущем.

    Флаг "/" дополняет собой ранее добавленный признак "*", отделяющий переменные, для которых применимо только присвоение в форме "переменная=значение". Например, в функции "def f(a, b, /, c, d, *, e, f):" переменные "a" и "b" могут быть присвоены только в порядке перечисления значений, переменные "e" и "f", только через присвоение "переменная=значение", а переменные "c" и "d" любым из указанных способов:

    
       f(10, 20, 30, 40, e=50, f=60)
       f(10, 20, с=30, d=40, e=50, f=60)
    
  • Добавлен новый Си API для настройки параметров инициализации Python, позволяющий полностью контролировать всю конфигурацию и предоставляющий расширенные средства обработки ошибок. Предложенный API упрощает встраивание функциональности интерпретатора Python в другие приложения на языке Си;
  • Реализован новый протокол Vectorcall для более быстрого обращения к объектам, написанным на языке Си. В CPython 3.8 доступ к Vectorcall пока ограничен внутренним использованием, перевод в разряд публично доступных API намечен в CPython 3.9;
  • Добавлены вызовы Runtime Audit Hooks, предоставляющие приложениям и фреймворкам на языке Python доступ к низкоуровневой информации о ходе выполнения скрипта для проведения аудита выполняемых действий (например, можно отследить импорт модулей, открытие файлов, использовании трассировки, обращения к сетевым сокетам, запуск кода через exec, eval и run_mod);
  • В модуле pickle обеспечена поддержка протокола Pickle 5, используемого для сериализации и десериализации объектов. Pickle позволяет оптимизировать передачу больших объёмов данных между процессами Python в многоядерных и многоузловых конфигурациях, сократив число операций копирования памяти и применяя дополнительные техники оптимизации, такие как задействование специфичных для определённых данных алгоритмов сжатия. Пятая версия протокола примечательна добавлением режима отделённой передачи (out-of-band), при которого данные могут передаваться отдельно от основного потока pickle.
  • По умолчанию активирована четвёртая версия протокола Pickle, которая по сравнению с ранее предлагавшейся по умолчанию третьей версией позволяет добиться более высокой производительности и сокращения размера передаваемых данных;
  • В модуле typing представлено несколько новых возможностей:
    • Класс TypedDict для ассоциативных массивов, в которых для связываемых с ключами данных явно задаётся информация о типе ("TypedDict('Point2D', x=int, y=int, label=str)").
    • Тип Literal, позволяющий ограничить параметр или возвращаемое значение несколькими предопределёнными значениями ("Literal['connected', 'disconnected']").
    • Конструкция "Final", дающая возможность определить значения переменных, функций, методов и классов, которые не могут быть изменены или переназначены ("pi: Final[float] = 3.1415926536").
  • Добавлена возможность назначения кэша для скомпилированных файлов с байткодом, сохраняемого в отдельном дереве ФС и отделённого от каталогов с кодом. Путь для сохранения файлов с байткодом задаётся через переменную PYTHONPYCACHEPREFIX или опцию "-X pycache_prefix";
  • Реализована возможность создания отладочных сборок Python, использующих идентичный с релизом ABI, что позволяет в отладочных сборках загружать написанные на языке СИ расширения, собранные для стабильных выпусков;
  • В f-строках (форматируемые литералы с префиксом 'f') обеспечена поддержка оператора "=" (например, "f'{expr=}'"), позволяющего преобразовать выражение в текст для упрощения отладки. Например:
    
       ››› user = 'eric_idle'
       ››› member_since = date(1975, 7, 31)
       ››› f'{user=} {member_since=}'
       "user='eric_idle' member_since=datetime.date(1975, 7, 31)"
    
  • Выражение "continue" разрешено использовать внутри блока finally;
  • Добавлен новый модуль multiprocessing.shared_memory, позволяющий использовать сегменты разделяемой памяти в многопроцессных конфигурациях;
  • На платформе Windows реализация asyncio переведена на использование класса ProactorEventLoop;
  • Производительность инструкции LOAD_GLOBAL увеличена примерно на 40% за счёт использования нового механизма кэширования объектного кода.

OpenNET

Ваш комментарий

Имя:

Текст комментария (HTML-теги не допускаются):

Бесплатный конструктор сайтов и Landing Page

Хостинг с DDoS защитой от 2.5$ + Бесплатный SSL и Домен

SSD VPS в Нидерландах под различные задачи от 2.6$

ATLEX Выделенные серверы: в Европе / в России.

Виртуальные серверы: в Европе / в России.

Партнерская программа

Хостинг + Certum Commercial SSL и домен в подарок

VPS: SSD, KVM, бесплатные бэкапы и администрирование 24/7

Бесплатный перенос сайта + подарки к новоселью

хостинг сайтов ГиперХост — хостинг сайтов который Вы искали.

Виртуальный хостинг, Аренда VPS серверов, рация доменных имен, SSL сертификаты

хостинг Украина

Новости мира IT:

Архив новостей

Последние комментарии:

IT-консалтинг Software Engineering Программирование СУБД Безопасность Internet Сети Операционные системы Hardware

Информация для рекламодателей PR-акции, размещение рекламы — adv@citforum.ru,
тел. +7 495 7861149
Пресс-релизы — pr@citforum.ru
Обратная связь
Информация для авторов
Rambler's Top100 TopList liveinternet.ru: показано число просмотров за 24 часа, посетителей за 24 часа и за сегодня This Web server launched on February 24, 1997
Copyright © 1997-2000 CIT, © 2001-2019 CIT Forum
Внимание! Любой из материалов, опубликованных на этом сервере, не может быть воспроизведен в какой бы то ни было форме и какими бы то ни было средствами без письменного разрешения владельцев авторских прав. Подробнее...