Python 3.9.0

A fost lansată o nouă versiune stabilă a popularului limbaj de programare Python.

Python este un limbaj de programare de nivel înalt, cu scop general, care vizează îmbunătățirea productivității dezvoltatorilor și lizibilitatea codului. Principalele caracteristici sunt tastarea dinamică, gestionarea automată a memoriei, introspecția completă, mecanismul de gestionare a excepțiilor, suport pentru calcularea multi-threaded, structuri de date la nivel înalt.

Python este un limbaj stabil și răspândit. Este folosit în multe proiecte și în diferite capacități: ca limbaj de programare primar sau pentru crearea de extensii și integrări de aplicații. Domenii principale de aplicare: dezvoltare web, învățare automată și analiză de date, automatizare și administrare de sistem. În prezent, Python ocupă locul trei în clasament TIOBE.

Principalele modificări:

Nou analizator de înaltă performanță bazat pe gramatici PEG.

În noua versiune, analizatorul actual Python bazat pe gramatica LL(1) (gramatică KS) este înlocuit cu un nou analizator stabil și performant bazat pe PEG (gramatică PB). Analizoarele pentru limbile reprezentate de gramaticile KS, cum ar fi analizatorii LR, necesită un pas special de analiză lexicală care descompune intrarea în funcție de spații albe, punctuație și așa mai departe. Acest lucru este necesar deoarece acești analizatori folosesc prepararea pentru a procesa unele gramatici KS în timp liniar. Gramaticile RV nu necesită un pas separat de analiză lexicală, iar regulile pentru aceasta pot fi stabilite împreună cu alte reguli gramaticale.

Operatori și funcții noi

Doi operatori noi au fost adăugați la clasa dict încorporată, | pentru fuzionarea dicționarelor și |= pentru actualizare.

Două funcții noi au fost adăugate la clasa str: str.removeprefix(prefix) și str.removesuffix(sufix).

Indicații de tip pentru tipurile de colecții încorporate

Această versiune include suport pentru sintaxa generatorului în toate colecțiile standard disponibile în prezent.

def read_blog_tags(etichete: list[str]) -> Niciuna:
pentru etichetele din etichete:
print(„Numele etichetei”, etichetă)

Alte modificări

  • PEP 573 Accesarea stării modulului folosind metodele de extensie C

  • PEP 593 Funcții flexibile și adnotări variabile

  • PEP 602 Python trece la versiuni anuale stabile

  • PEP 614 Restricții gramaticale relaxante asupra decoratorilor

  • Suport pentru baze de date PEP 615 IANA pentru fus orar în biblioteca standard

  • BPO 38379 Colectarea gunoiului nu blochează obiectele recuperate

  • BPO 38692 os.pidfd_open, pentru controlul proceselor fără curse și semnale;

  • BPO 39926 Suport Unicode actualizat la versiunea 13.0.0

  • BPO 1635741, Python nu mai are scurgeri atunci când inițializează Python de mai multe ori în același proces

  • Colecțiile Python (gamă, tuplu, set, set înghețat, listă, dict) accelerate cu apelul vectorial PEP 590

  • Unele module Python (_abc, audioop, _bz2, _codecs, _contextvars, _crypt, _functools, _json, _locale, operator, resource, time, _weakref) folosesc acum inițializarea polifazată așa cum este definită în PEP 489

  • O serie de module standard de bibliotecă (audioop, ast, grp, _hashlib, pwd, _posixsubprocess, random, select, struct, termios, zlib) folosesc acum ABI stabil definit de PEP 384.

Sursa: linux.org.ru

Adauga un comentariu