Python 3.11 надходить із покращеною продуктивністю, оновленим дизайном кешування тощо

Python

Python — це інтерпретована мова програмування високого рівня, філософія якої наголошує на зручності читання коду.

Після року розвитку, вийшла нова версія мови програмування Python 3.11Нова гілка підтримуватиметься протягом півтора років, після чого ще три з половиною роки будуть формуватися патчі з уразливими місцями.

Тоді ж почалося альфа-тестування гілки Python 3.12 (згідно з новим графіком розробки, робота над новою гілкою починається за п'ять місяців до виходу попередньої гілки і досягає альфа-тестування до моменту виходу наступної версії).

Гілка Python 3.12 перебуватиме в альфа-версії протягом семи місяців, протягом яких будуть додані нові функції та виправлені помилки. Після цього протягом трьох місяців триватиме бета-тестування, протягом якого додавання нових функцій буде заборонено, а повна увага приділятиметься виправленню помилок. Останні два місяці перед запуском філія перебуватиме на стадії кандидата на запуск, після чого відбудеться остаточна стабілізація.

Основні нові можливості Python 3.11

У цій новій версії Проведено значну роботу для оптимізації продуктивності, оскільки нова гілка містить відповідні зміни з прискоренням і вбудованим розгортанням викликів функцій, використання швидких інтерпретаторів типових операцій, а також оптимізації, підготовлені проектами Cinder і HotPy. Залежно від типу завантаження швидкість виконання коду зростає від 10% до 60%. У середньому продуктивність при проходженні набору тестів pyperformance зросла на 25%.

Механізм кешування було перероблено байт-коду, що скоротило час запуску інтерпретатора на 10-15%. Об’єкти з кодом і байт-кодом тепер статично виділяються інтерпретатором, що дозволило усунути кроки розгадування байт-коду, отриманого з кешу, і перетворення об’єктів з кодом для розміщення їх у купі пам’яті.

Додано підтримка груп винятків, що дає програмі можливість викликати та обробляти кілька різних винятків одночасно. Нові типи винятків ExceptionGroup і BaseExceptionGroup пропонуються для групування кількох винятків разом, а вираз «except*» додається для відокремлення винятків від групи.

Додано спеціальний тип LiteralString так самотньо може включати літеральні рядки, які сумісні з типом LiteralString (тобто голі рядки та рядки типу LiteralString, але не довільні чи змішані рядки типу str). Тип LiteralString можна використовувати для обмеження передачі рядкових аргументів функціям, довільної заміни частин рядків, де це може призвести до вразливості, наприклад, під час генерації рядків для запитів SQL або команд оболонки.

Крім того, також передбачена можливість позначення окремих елементів словників (TypedDict) із прапорцями Required і Not Required для визначення обов’язкових і необов’язкових полів (за замовчуванням усі оголошені поля є обов’язковими, якщо для загального параметра не встановлено значення Підробка).

Додано @dataclass_transform клас, метод і декоратор функції, коли вказано, засіб перевірки статичного типу обробляє об’єкт так, ніби використовує декоратор @dataclasses.dataclass.

З інших змін, які виділяються в цій новій версії:

  • Додано можливість використання атомарного групування ((?>…)) і ревнивих (присвійних) кванторів (*+, ++, ?+, {m,n}+) у регулярних виразах.
  • Додано тип TypeVarTuple, який дозволяє використовувати змінні генерики, на відміну від TypeVar, який охоплює не один тип, а довільну кількість типів.
  • Стандартна бібліотека включає модуль tomllib із функціями аналізу формату TOML.
  • Метод add_note() додано до класу BaseException, який дозволяє додавати текстову примітку до винятку, наприклад, щоб додати контекстну інформацію, яка була недоступна на момент створення винятку.
  • Для представлення поточного приватного класу додано спеціальний тип Self. Self можна використовувати для анотування методів, які повертають екземпляр вашого класу простіше, ніж за допомогою TypeVar.
  • Додано параметр командного рядка "-P" і змінну середовища PYTHONSAFEPATH, щоб вимкнути автоматичне підключення потенційно небезпечних шляхів файлів до sys.path.
  • Утиліту py.exe для платформи Windows було значно вдосконалено для підтримки синтаксису "-V:". / " на додаток до "- . ».
  • Багато макросів C API було перетворено на звичайні або статичні вбудовані функції
  • Модулі uu, cgi, pipes, crypt, aifc, chunk, msilib, telnetlib, audioop, nis, sndhdr, imghdr, nntplib, spwd, xdrlib, cgitb, mailcap, ossaudiodev і sunau застаріли та будуть видалені з Python. 3.13 випуск.
  • Видалено функції PyUnicode_Encode*.
  • Клас TaskGroup додано до модуля asyncio з реалізацією диспетчера асинхронного контексту, який очікує на завершення групи завдань.
  • Додавання завдань до групи здійснюється за допомогою методу create_task().

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


Залиште свій коментар

Ваша електронна адреса не буде опублікований. Обов'язкові для заповнення поля позначені *

*

*

  1. Відповідальний за дані: Мігель Анхель Гатон
  2. Призначення даних: Контроль спаму, управління коментарями.
  3. Легітимація: Ваша згода
  4. Передача даних: Дані не передаватимуться третім особам, за винятком юридичних зобов’язань.
  5. Зберігання даних: База даних, розміщена в мережі Occentus Networks (ЄС)
  6. Права: Ви можете будь-коли обмежити, відновити та видалити свою інформацію.