Зміни в Python 3.10

Тепер, завдяки випуску Python 3.10, мова програмування Python стала ще потужнішою та універсальнішою. У цій короткій статті для розробників ми розглянемо деякі нові функції та вдосконалення, включені до цього найновішого випуску, зокрема зміни в регулярних виразах і зіставленні зі зразком, строгий аргумент для функції zip та вдосконалені повідомлення про помилки.

Зіставлення структурних шаблонів у Python 3.10

Python відомий своєю потужністю в роботі з регулярними виразами, регулярними виразами та зіставленням зі зразком. Ця можливість Python — одна зі змін у новій версії мови. У Python 3.10 зіставлення структурних шаблонів дає розробникам змогу зіставляти змінні з іншими наборами значень. Це досягається за допомогою нещодавно доданого оператора match-case.

Ось приклад того, як wi4orks працює в коді Python 3.10:

name = "Максим"
match name:
    case "Іван":
        print("Неправильне ім’я.")
    case "Peter":
        print("Ні, усе ще неправильно.")
    case "Mary":
        print("Неправильно, спробуйте ще раз.")
    case _:
        print("Ім’я не знайдено.")


Заключення менеджерів контексту в дужки

Python 3.10 дає змогу форматувати довгі набори менеджерів контексту в кілька рядків. Для цього потрібно просто взяти менеджери контексту в дужки, використовуючи оператор with.

Вдосконалені повідомлення про помилки

Ще одна важлива зміна в Python 3.10 стосується вдосконалених повідомлень про помилки. Розробники Python знають, що іноді повідомлення про помилки можуть бути дещо розпливчастими й не надто корисними, коли потрібно з’ясувати, яка саме помилка сталася або навіть у якому рядку вона виникла.

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

Щоб побачити це в дії, розгляньте такий код і повідомлення про помилку, яке ви отримаєте, якщо запустите його в редакторі коду або інтегрованому середовищі розробки (IDE):

print("Мене звати Дмитро Іванов, і це моя помилка!)

Цей код призведе до такого повідомлення про помилку:

$ python errorExample.py
    File "/home/python/errorExample.py", lin 1
        print("Мене звати Дмитро Іванов, і це моя помилка!))
                                   ^
SyntaxError: EOL while scanning string literal

Застаріле в Python 3.10

Як це зазвичай буває з великими оновленнями мов програмування, у Python 3.10 також є низка застарілих версій. По-перше, версії OpenSSL старші за версію 1.1.1 більше не підтримуються. Ця зміна торкнеться всіх модулів, зокрема hashlib, hmac і ssl. Крім того, пакет distutils застарів; його офіційно вилучать у Python 3.12.