È stato rilasciato un nuovo aggiornamento stabile del popolare linguaggio di programmazione Python.
Python è un linguaggio di programmazione ad alto livello, orientato all'uso generale, progettato per aumentare la produttività degli sviluppatori e la leggibilità del codice. Le caratteristiche principali includono tipizzazione dinamica, gestione automatica della memoria, introspezione completa, meccanismo di gestione delle eccezioni, supporto per calcoli multithread e strutture dati di alto livello.
Python è un linguaggio stabile e ampiamente diffuso. Viene utilizzato in molti progetti e in diversi contesti: sia come linguaggio di programmazione principale che per la creazione di estensioni e integrazione di applicazioni. Le principali aree di applicazione includono: sviluppo web, apprendimento automatico e analisi dei dati, automazione e amministrazione di sistema. Attualmente Python occupa il terzo posto nella classifica TIOBE.
Variazioni principali:
Un nuovo parser ad alte prestazioni basato su grammatiche PEG.
Nella nuova versione, il parser Python attuale, basato su grammatiche LL(1) (grammatica CFG), è stato sostituito da un nuovo parser ad alte prestazioni e stabile basato su PEG (grammatica GLL). I parser per i linguaggi rappresentati da grammatiche CFG, come i parser LR, richiedono un passaggio di analisi lessicale separato che divide i dati in ingresso in base a spazi, punteggiatura e così via. Ciò è necessario poiché questi parser utilizzano analisi preliminare per elaborare alcune grammatiche CFG in tempo lineare. Le grammatiche GLL non richiedono un passaggio di analisi lessicale separato e le regole per questa possono essere incorporate insieme ad altre regole grammaticali.
Nuovi operatori e funzioni
Due nuovi operatori, | per unire dizionari e |= per aggiornare, sono stati aggiunti alla classe dict incorporata.
Due nuove funzioni, str.removeprefix(prefisso) e str.removesuffix(suffisso), sono state aggiunte alla classe str.
Suggerimento di tipo per i tipi di raccolta incorporati
In questa versione è stato incluso il supporto per la sintassi dei generatori in tutte le raccolte standard attualmente disponibili.
def read_blog_tags(tags: list[str]) -> None:
for tag in tags:
print("Nome Tag", tag)
Altre modifiche
PEP 573 Accesso allo stato del modulo tramite metodi di estensione C
PEP 593 Funzioni flessibili e annotazioni di variabili
PEP 602 Python passa a rilasci stabili annuali
PEP 614 Mitigazione delle restrizioni grammaticali sui decoratori
PEP 615 Supporto del database IANA per i fusi orari nella libreria standard
BPO 38379 la raccolta dei rifiuti non è bloccata sugli oggetti ripristinati
BPO 38692 os.pidfd_open, per gestire i processi senza race condition e segnali;
BPO 39926 supporto Unicode aggiornato alla versione 13.0.0
BPO 1635741, nella inizializzazione multipla di Python nello stesso processo, non si verifica più alcuna perdita di memoria
Collezioni Python (range, tuple, set, frozenset, list, dict) accelerate tramite 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 multi-fase, definita nel PEP 489
Una serie di moduli standard delle librerie (audioop, ast, grp, _hashlib, pwd, _posixsubprocess, random, select, struct, termios, zlib) ora utilizza un ABI stabile, definito nel PEP 384.
Fonte: linux.org.ru
