Python 3.9.0

Вийшов новий стабільний реліз популярної програми Python.

Python – високорівнева мова програмування загального призначення, орієнтована на підвищення продуктивності розробника та читання коду. Основні риси – динамічна типізація, автоматичне керування пам'яттю, повна інтроспекція, механізм обробки винятків, підтримка багатопоточних обчислень, високорівневі структури даних.

Python – стабільна та поширена мова. Він використовується в багатьох проектах та в різних якостях: як основна мова програмування або для створення розширень та інтеграції додатків. Основні сфери застосування: веб-розробка, машинне навчання та аналіз даних, автоматизація та системне адміністрування. Наразі Python посідає третє місце у рейтингу. ТІОБ.

Основні зміни:

Новий високопродуктивний синтаксичний аналізатор на основі граматик PEG.

У новій версії поточний парсер Python на основі граматик LL(1)(КС-граматика) замінений на новий високопродуктивний та стабільний синтаксичний аналізатор на базі PEG (РВ-граматика). Аналізатори для мов, представлених КС-граматиками, такі як LR-аналізатори, вимагають особливого кроку лексичного аналізу, який розбиває вхідні дані відповідно до пробілів, пунктуацій тощо. Це необхідно, оскільки ці аналізатори використовують попередній аналіз обробки деяких КС-граматик в лінійний час. РВ-граматики не вимагають окремого кроку лексичного аналізу, а правила йому можуть бути закладені разом з іншими правилами граматики.

Нові оператори та функції

У вбудований клас dict додано два нових оператори, | для злиття словників та |= для оновлення.

До класу str додано дві нові функції: str.removeprefix(префікс) та str.removesuffix(суфікс).

Підказка типу для вбудованих типів колекцій

У цьому релізі включено підтримку синтаксису генераторів у всіх стандартних колекціях, доступних в даний час.

def read_blog_tags(tags: list[str]) -> None:
for tag in tags:
print("Tag Name", tag)

інші зміни

  • PEP 573 Доступ до стану модуля за допомогою методів розширення C

  • PEP 593 Гнучкі функції та змінні анотації

  • PEP 602 Python переходить на щорічні стабільні релізи

  • PEP 614 Пом'якшувальні граматичні обмеження на декоратори

  • PEP 615 Підтримка бази даних IANA за часовими поясами у стандартній бібліотеці

  • BPO 38379 збирання сміття не блокується на відновлених об'єктах

  • BPO 38692 os.pidfd_open, для керування процесами без перегонів та сигналів;

  • BPO 39926 підтримка Unicode оновлено до версії 13.0.0

  • BPO 1635741, при багаторазовій ініціалізації Python в тому самому процесі, більше не відбувається витік пам'яті

  • Колекції Python (range, tuple, set, frozenset, list, dict) прискорені за допомогою векторного виклику PEP 590

  • Деякі модулі Python (_abc, audioop, _bz2, _codecs, _contextvars, _crypt, _functools, _json, _locale, operator, ресурс, time, _weakref) тепер використовують багатофазну ініціалізацію, як визначено в PEP 489

  • Ряд стандартних модулів бібліотек (audioop, ast, grp, _hashlib, pwd, _posixsubprocess, random, select, struct, termios, zlib) тепер використовують стабільний ABI, визначений PEP 384.

Джерело: linux.org.ru

Додати коментар або відгук