A apărut o nouă versiune stabilă a limbajului de programare popular Python.
Python este un limbaj de programare de nivel înalt, de uz general, destinat să sporească productivitatea dezvoltatorului și lizibilitatea codului. Principalele caracteristici includ tipizare dinamică, management automat al memoriei, introspecție completă, mecanism de gestionare a excepțiilor, suport pentru calculul multi-threaded și structuri de date de nivel înalt.
Python este un limbaj stabil și răspândit. Este utilizat în multe proiecte și în diferite roluri: ca limbaj principal de programare sau pentru crearea de extensii și integrarea aplicațiilor. Principalele domenii de aplicare includ dezvoltarea web, învățarea automată și analiza datelor, automatizarea și administrarea sistemelor. În prezent, Python ocupă locul al treilea în clasamentul TIOBE.
Modificări principale:
Un nou parser de înaltă performanță bazat pe gramatica PEG.
În noua versiune, parser-ul curent al Python-ului, bazat pe gramatica LL(1) (gramatica C), a fost înlocuit cu un nou parser de înaltă performanță și stabil, bazat pe PEG (gramatica R). Parser-ele pentru limbaje reprezentate prin gramatici C, cum ar fi parser-ele LR, necesită un pas special de analiză lexicală care împarte datele de intrare conform spațiilor, semnelor de punctuație etc. Acest lucru este necesar, deoarece aceste parser-e folosesc analiza preliminară pentru a gestiona anumite gramatici C în timp liniar. Gramaticile R nu necesită un pas separat de analiză lexicală, iar regulile pentru aceasta pot fi incluse împreună cu alte reguli ale gramaticii.
Noi operatori și funcții
Două noi operatori au fost adăugați la clasa încorporată dict, | pentru combinarea dicționarelor și |= pentru actualizare.
Două noi funcții au fost adăugate la clasa str: str.removeprefix(prefix) și str.removesuffix(suffix).
Sugestie de tip pentru tipurile încorporate de colecții
Această versiune include suport pentru sintaxa generatorilor în toate colecțiile standard disponibile în prezent.
def read_blog_tags(tags: list[str]) -> None:
for tag in tags:
print("Numele Etichetei", tag)
Alte modificări
PEP 573 Acces la starea modulului prin metode de extensie C
PEP 593 Funcții flexibile și anotări variabile
PEP 602 Python trece la versiuni stabile anuale
PEP 614 Reducerea restricțiilor gramaticale asupra decoratoarelor
PEP 615 Suport pentru baza de date IANA a fusurilor orare în biblioteca standard
BPO 38379 colectarea de gunoi nu este blocată pe obiectele restaurate
BPO 38692 os.pidfd_open, pentru a gestiona procesele fără condiții de cursă și semnale;
BPO 39926 suportul Unicode a fost actualizat la versiunea 13.0.0
BPO 1635741, la inițializarea multiplă a Python într-un singur proces, nu mai apare scurgerea de memorie
Colectările Python (range, tuple, set, frozenset, list, dict) au fost accelerate prin apeluri vectoriale conform PEP 590
Unele module Python (_abc, audioop, _bz2, _codecs, _contextvars, _crypt, _functools, _json, _locale, operator, resource, time, _weakref) utilizează acum inițializarea multi-fază, așa cum este definit în PEP 489
O serie de module standard ale bibliotecilor (audioop, ast, grp, _hashlib, pwd, _posixsubprocess, random, select, struct, termios, zlib) utilizează acum ABI stabil definit de PEP 384.
Sursa: linux.org.ru
