newsData
newsSection
Apple планує п’ять нових комп’ютерів Mac у 2022 році
newsBreadCrumbs
Блог

Python Software Foundation

Доступний Python 3.10. Сміливішим розробникам рекомендується протестувати свій код за допомогою цієї версії, вживаючи необхідних заходів (наприклад, використовуючи віртуальне середовище). Ця інтеграція має кілька основних нових функцій, але одна, яка називається структурним узгодженням шаблонів є, можливо, найбільш значущим доповненням до синтаксису мови з часів асинхронного кодування.
Ось короткий опис усіх останніх основних функцій Python 3.10 і те, як вони допомагають покращити код:
  • Фільтрування або відповідність шаблону.
Додавання відповідності шаблону відбувається після кількох невдалих спроб додати синтаксис перемикача/регістру до Python. Ця фільтрація, яка також називається відповідністю шаблону, узгоджує змінні з набором можливих значень (як у випадку перемикача/регістру в інших мовах). Але він також відповідає шаблонам значень - наприклад, об'єкту, певна властивість якого має певне значення. Ця функція значно розширює діапазон можливостей і дозволяє писати код, який швидко охоплює багато сценаріїв.
  • Більш точні звіти про помилки.
Звіти про помилки Python вже давно піддаються примхам його аналізатора. Вже в Python 3.9 з’явився абсолютно новий синтаксичний аналізатор – швидший, надійніший та легший в обслуговуванні для команди Python і з меншим внутрішнім зломом. Найновіший аналізатор надає розробникам набагато точніші та корисні повідомлення про помилки. У Python 3.8 наступний код генерує синтаксичну помилку.
  • SyntaxError: недійсний синтаксис
Що не дуже корисно, оскільки справжня проблема знаходиться на один рядок вище. Python 3.10 генерує набагато корисніше сповіщення про помилку:
Багато помилок, створених синтаксичним аналізатором, були покращені в цьому відношенні, надаючи не тільки більш точну інформацію про помилку, але й про те, де насправді виникає помилка.
  • Захоплення змінних параметрів.
Модуль введення Python, який використовується для анотування коду інформацією про тип, дозволяє вам описати типи, які можуть бути викликані (наприклад, функції). Але інформація такого типу не може поширюватися між викликами. Це ускладнює коментування таких речей, як декоратори елементів. Два нових доповнення до введення: typing.ParamSpec і typing.Concatenate, дозволяють анотувати викликані можливості більш абстрактною інформацією щодо визначення типу.
Оскільки неможливо надати належну інформацію про типи, що передаються функціям, які обробляються декоратором, лінтер не може перехопити не дійсні типи у другому екземплярі take_int_str.
ParamSpec дозволяє вказати, де фіксувати позиційні аргументи та ключові слова. Concatenate можна використовувати, щоб вказати, як аргументи додаються або видаляються, що зазвичай робиться з декораторами.
  • Інші основні зміни в Python 3.10
- Об’єднання типу тепер можна виразити як X | Y, замість Union [X, Y], для стислості (PEP 604).
- Вбудований zip, який поєднує результати кількох ітерацій разом, тепер має суворе ключове слово. Якщо результат має значення True, zip створює виняток, якщо один із ітераторів вичерпується раніше інших (PEP 618), щоб додати необов’язкову перевірку довжини в zip.
- Тепер оператори підтримують багаторядковий синтаксис дужок (BPO-12782). Функція дозволяє групувати менеджери контексту за допомогою дужок.
- Змінні тепер можна оголошувати як явні псевдоніми типів, щоб дозволити визначити прямі посилання, більш надійні більш надійні помилки, що стосуються типів, і краще розрізняти оголошення типів у полях (PEP 613).
- OpenSSL API 1.1.1 або новішої версії тепер потрібен для створення CPython. Ця вимога допомагає модернізувати одну з ключових залежностей CPython (PEP 644).
Новини для ІТ-спеціалістів
Made on
Tilda