È 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