Nessun risultato. Prova con un altro termine.
Guide
Notizie
Software
Tutorial

Python 3.10: le novità in arrivo

La beta 2 di Python 3.10 è stata rilasciata: scopriamo insieme le principali novità introdotte in quest'ultima versione.
Python 3.10: le novità in arrivo
La beta 2 di Python 3.10 è stata rilasciata: scopriamo insieme le principali novità introdotte in quest'ultima versione.
Link copiato negli appunti

Il prossimo ottobre dovrebbe essere rilasciata la nuova versione di

[!] Ci sono problemi con l'autore. Controllare il mapping sull'Author Manager

, la numero 3.10. Sul sito ufficiale è già possibile ottenere la beta 2, grazie alla quale possiamo apprezzare praticamente tutte le novità introdotte nel linguaggio.

In questo articolo cercheremo di riassumere almeno le più significative.

Messaggi di errore migliorati

Una prima novità introdotta con questa nuova versione riguarda i messaggi di errore. Generalmente, è abbastanza semplice risalire alla causa degli errori dando un'occhiata a quanto viene stampato nella console dall'interprete di Python. Tuttavia, in alcuni casi può non essere semplice identificare la causa in modo immediato.

Per migliorare questo aspetto, sono stati aggiunti alcuni dettagli relativi a casi d'uso comuni, che dovrebbero semplificare la fase di troubleshooting. Ad esempio, viene evidenziato in modo più efficace un

[!] Ci sono problemi con l'autore. Controllare il mapping sull'Author Manager

erroneamente non chiuso:

[!] Ci sono problemi con l'autore. Controllare il mapping sull'Author Manager

Altri errori comuni che vengono adesso gestiti in maniera più intuitiva riguarda la mancata chiusura delle virgolette che incapsulano una stringa, o l'assena dei due punti (:) alla fine della condizione di un

[!] Ci sono problemi con l'autore. Controllare il mapping sull'Author Manager

o dopo la sintassi di un ciclo

[!] Ci sono problemi con l'autore. Controllare il mapping sull'Author Manager

. Anche gli errori relativi ad

[!] Ci sono problemi con l'autore. Controllare il mapping sull'Author Manager

errate sono ora segnalati con messaggi più espressivi:

Figura x. (click per ingrandire)

[!] Ci sono problemi con l'autore. Controllare il mapping sull'Author Manager
[!] Ci sono problemi con l'autore. Controllare il mapping sull'Author Manager

Switch (o Structural Pattern Matching)

Uno dei costrutti che finora è mancato su Python è quello dello switch, presente in altri linguaggi

[!] Ci sono problemi con l'autore. Controllare il mapping sull'Author Manager

-like. La nuova versione di Python introduce il cosiddetto Structural Pattern Matching, che di fatto permette di realizzare ciò che più si avvicina ad uno switch, sostituendosi alla necessità di affidarsi ad una lunga serie di if-elif-else. Vediamo un esempio:

def mood_settimanale(giorno):
    match giorno:
        case 'Lunedì':
            return 'Si ricomincia...'
        case 'Giovedì':
            return 'Si avvicina il weekend!'
        case 'Venerdì':
            return 'Ci siamo quasi!'
        case 'Sabato' | 'Domenica':
            return 'Weekend!!!'
        case _:
            return 'Che noia...'
print(mood_settimanale(day='Mercoledì'))
# Che noia...
print(mood_settimanale(day='Giovedì'))
# Si avvicina il weekend!
print(mood_settimanale(day='Sabato'))
# Weekend!!!
print(mood_settimanale(day='Lunedì'))
# Si ricomincia...

Vengono quindi introdotte le parole chiave match e case, con quest'ultima che assume il significato equivalente al default di C nel caso in cui viene seguita dal carattere _.

Operatore Union

Finora, per poter definire una funzione in modo da limitare i parametri a poter assumere valori di uno specifico insieme di tipi, era necessario affidarsi all'operatore Union del modulo typing:

from typing import Union
def square_root(number: Union[int, float]) -> Union[int, float]:
    return number ** 0.5

Con Python 3.10, è introdotta una nuova sintassi che fa uso del carattere |, semplificando la scrittura del codice:

def square_root(number: int | float) -> int | float:
    return number ** 0.5

Migliorati i context manager

Altro miglioramento interessante è quello che riguarda i context manager, che sfruttano la parola chiave with per definire un contesto entro cui limitare la sussistenza di certi oggetti, come gli handler dei file. Con Python 3.10 è introdotta la possibilità di definire un insieme di oggetti, anziché limitarsi ad uno solo di essi, sfruttando la seguente sintassi:

with (
    open('file1.txt', 'r') as f1,
    open('file2.txt', 'r') as f2
):
    content_1 = f1.read()
    content_2 = f2.read()

Altre novità in Python 3.10

Ovviamente ci sono altre novità significative che vedranno la luce con la nuova versione di Python. Per avere una panoramica completa, rimandiamo alla

[!] Ci sono problemi con l'autore. Controllare il mapping sull'Author Manager

, che dettaglia tutti i miglioramenti introdotti nel linguaggio.

Questo articolo contiene link di affiliazione: acquisti o ordini effettuati tramite tali link permetteranno al nostro sito di ricevere una commissione nel rispetto del codice etico. Le offerte potrebbero subire variazioni di prezzo dopo la pubblicazione.

Ti consigliamo anche