Python 3.9.0

È stata rilasciata una nuova versione stabile del popolare linguaggio di programmazione Python.

Python è un linguaggio di programmazione di alto livello e di uso generale volto a migliorare la produttività degli sviluppatori e la leggibilità del codice. Le caratteristiche principali sono tipizzazione dinamica, gestione automatica della memoria, introspezione completa, meccanismo di gestione delle eccezioni, supporto per elaborazione multi-thread e strutture dati di alto livello.

Python è un linguaggio stabile e diffuso. Viene utilizzato in molti progetti e a vario titolo: come linguaggio di programmazione principale o per creare estensioni e integrazioni applicative. Principali aree di applicazione: sviluppo web, machine learning e analisi dati, automazione e amministrazione di sistema. Python attualmente è al terzo posto nella classifica TIOBE.

Principali modifiche:

Nuovo parser ad alte prestazioni basato su grammatiche PEG.

Nella nuova versione, l'attuale parser Python basato sulle grammatiche LL(1) (grammatica KS) viene sostituito con un nuovo parser stabile e ad alte prestazioni basato su PEG (grammatica PB). I parser per le lingue rappresentate dalle grammatiche KS, come i parser LR, richiedono uno speciale passaggio di analisi lessicale che suddivide l'input in base agli spazi bianchi, alla punteggiatura e così via. Ciò è necessario perché questi parser utilizzano la preparazione per elaborare alcune grammatiche KS in tempo lineare. Le grammatiche RV non richiedono una fase separata di analisi lessicale e le relative regole possono essere stabilite insieme ad altre regole grammaticali.

Nuovi operatori e funzioni

Sono stati aggiunti due nuovi operatori alla classe dict incorporata, | per unire i dizionari e |= per l'aggiornamento.

Due nuove funzioni sono state aggiunte alla classe str: str.removeprefix(prefix) e str.removesuffix(suffix).

Suggerimento sul tipo per i tipi di raccolta incorporati

Questa versione include il supporto per la sintassi del generatore in tutte le raccolte standard attualmente disponibili.

def read_blog_tags(tags: list[str]) -> Nessuno:
per i tag nei tag:
print("Nome tag", tag)

Altre modifiche

  • PEP 573 Accesso allo stato del modulo utilizzando metodi di estensione C

  • PEP 593 Funzioni flessibili e annotazioni variabili

  • PEP 602 Python passa alle versioni stabili annuali

  • PEP 614 Restrizioni grammaticali rilassanti per i decoratori

  • Supporto del database del fuso orario PEP 615 IANA nella libreria standard

  • BPO 38379 La Garbage Collection non si blocca sugli oggetti recuperati

  • BPO 38692 os.pidfd_open, per il controllo dei processi senza corse e segnali;

  • Supporto Unicode BPO 39926 aggiornato alla versione 13.0.0

  • BPO 1635741, Python non perde più informazioni durante l'inizializzazione di Python più volte nello stesso processo

  • Raccolte Python (range, tuple, set, frozenset, list, dict) accelerate con la chiamata vettoriale PEP 590

  • Alcuni moduli Python (_abc, audioop, _bz2, _codecs, _contextvars, _crypt, _functools, _json, _locale, operator, Resource, time, _weakref) ora utilizzano l'inizializzazione polifase come definita in PEP 489

  • Un certo numero di moduli di libreria standard (audioop, ast, grp, _hashlib, pwd, _posixsubprocess, random, select, struct, termios, zlib) ora utilizzano l'ABI stabile definita da PEP 384.

Fonte: linux.org.ru

Aggiungi un commento