Forum >> Notizie >> Python 3.15 è qui: Le 3 novità che vi faranno dire "finalmente"

Pagina: 1

Avete presente quella sensazione quando scaricate una nuova release di Python e vi chiedete: "Ok, ma cosa cambia davvero per me nell'uso di tutti i giorni?". Tra miglioramenti sotto il cofano, correzioni di bug e PEP dai nomi esotici, Python 3.15 porta con sé una valanga di novità. Ma niente panico, abbiamo fatto il lavoro sporco per voi e abbiamo estratto le tre funzionalità più rilevanti che cambieranno il modo in cui scriviamo codice.

Mettetevi comodi, prende una tazza di tequila e vediamole insieme.

1. Importazioni "Lazy": Perché correre quando si può aspettare?

Avete presente quando aprite un'app da riga di comando e ci mette tre secondi di troppo prima di rispondere, solo perché all'inizio del file c'era un import pandas o un import json mai usato? Con la nuova sintassi della PEP 810 arriva la parola chiave lazy. In pratica, dite a Python: "Ehi, ti dico già cosa mi servirà, ma non caricarmelo in memoria finché non lo uso davvero."
# Ora possiamo fare così:
lazy import json
lazy from math import sqrt
Finché non toccate json o sqrt, Python non perde tempo a caricare i moduli. È la svolta perfetta per velocizzare l'avvio di CLI, script veloci e server di sviluppo, in altre parole è stata sdoganata una po' di sana procrastinazione direttamente nel linguaggio.

2.frozendict: Il dizionario blindato che mancava

Quante volte vi è capitato di voler usare un dizionario come chiave di un altro dizionario o all'interno di un set, per poi sentirvi dire da Python: "Mi dispiace, i dict sono mutabili, niente hash!"? La soluzione storica era fare acrobazie strane con le tuple o le dataclass congelate. Con la PEP 814, Python 3.15 introduce finalmente frozendict direttamente tra i tipi integrati (built-in):
# Un dizionario a prova di bomba!
config = frozendict({"versione": 3.15, "stato": "super_cool"})

# Provate a modificarlo e vi beccate un bel TypeError:
config["versione"] = 3.16  #Impossibile

Essendo immutabile, se tutte le sue chiavi e valori sono hashable, lo diventa anche lui. Questo significa che ora potete usare frozendict come chiave dentro altri dizionari senza dover inventare la ruota ogni volta. Pulito, sicuro e stiloso.

3. Unpacking nelle Comprehension: Addio nidificazioni da incubo

Chiunque abbia scritto Python per più di due settimane si è scontrato almeno una volta con le list comprehension nidificate. Quella sintassi tipo [x for sub in lista for x in sub] che richiede due minuti di riflessione filosofica ogni volta che la si legge. Ma con la PEP 798 arriva l'operatore di unpacking (*) direttamente dentro le comprehension.
# Abbiamo una lista di tuple/liste nidificate:
dati_nidificati = [(1, 2), [3, 4], (5, 6)]

# Prima: sintassi da mal di testa
# flat = [valore for sottolista in dati_nidificati for valore in sottolista]

# Ora: magia pura
flat = [*sub for sub in dati_nidificati]

print(flat)  # [1, 2, 3, 4, 5, 6]
Funziona su liste, set, dizionari e generatori. Il codice diventa immediatamente più leggibile, sintetico ed elegante. Come si fa a non amarlo?


In conclusione Python 3.15 dimostra ancora una volta che il nostro linguaggio preferito sa come evolversi mantenendo la sua promessa storica: rendere la vita dello sviluppatore più semplice e piacevole.

E voi quale di queste tre novità non vedete l'ora di provare nei vostri progetti? Fatecelo sapere nei commenti... o anche no, sentitevi liberi.


Pagina: 1



Esegui il login per scrivere una risposta.