Novità di Python 3.9

Contenuto1 Operatori Union per Dizionari2 Type Hinting (Suggerimento del Tipo)3 Nuovi metodi per le Stringhe4 Conclusione Ad Ottobre 2021 verrà rilasciata la nuove versione di Python, ora in beta, la […]

Avatar di gbfactory
gbfactory 19 Agosto 2020

Ad Ottobre 2021 verrà rilasciata la nuove versione di Python, ora in beta, la 3.9, che poterà svariate novità, alcune delle quali vedremo in questo articolo.

Operatori Union per Dizionari

Se abbiamo due dizionari a e b che desideriamo unire, dalla nuova versione di Python ci sarà possibile sfruttare i nuovi operatori union.

Il primo è l'operatore merge, indicato da |, che come suggerisce il nome, unisce due dizionari:

a = {1: 'a', 2: 'b', 3: 'c'}
b = {4: 'd', 5: 'e'}
c = a | b
print(c) // Output: {1: 'a', 2: 'b', 3: 'c', 4: 'd', 5: 'e'}

Il secondo è l'operatore update, indicato da |=, che aggiorna il dizionario originale:

a = {1: 'a', 2: 'b', 3: 'c'}
b = {4: 'd', 5: 'e'}
a |= b
print(a) // Output: {1: 'a', 2: 'b', 3: 'c', 4: 'd', 5: 'e'}

Nota: Se nei dizionari c'è una chiave condivisa, verrà preso il valore della chiave del secondo dizionario.

Type Hinting (Suggerimento del Tipo)

Python è un linguaggio scritto dinamicamente, quindi non dobbiamo specificare i tipi di dato nel nostro codice, ma questo in alcuni casi può risultare problematico e creare confusione.

Da Python 3.5 è possibile specificare i tipi di dato, ma non era il massimo. Con questo aggiornamento invece, le cose cambiano veramente:

Nella funzione add_int, vogliamo che sommare il numero a se stesso, ma il nostro editor non lo e per lui sarà corretto se non sommiamo sue stringhe, quindi non riceveremo nessun avvertimento.

Quello che cambia ora è che ci è possibile specificare il tipo di input che ci aspettiamo, quindi un intero int. Con questa informazione il nostro editor capirà subito se c'è un problema o no.

Nuovi metodi per le Stringhe

Due nuovi metodi per le stringhe utili a rimuovere un prefisso o un suffisso sono stati aggiunti.

str.removeprefix() è un metodo che restituisce una stringa con rimosso il prefisso se la stringa str inizia con esso.

print("Hello World".removeprefix("Hello"))
// Output: "World"

str.removesuffix() è metodo che restituisce una stringa con rimosso il suffisso se la stringa str finisce con esso.

print("Hello World".removesuffix("World"))
// Output: Hello

Nota: Se la stringa non inizia o finisce con il prefisso o suffisso specificato, verrà restituita la stringa originale.

Conclusione

In questo articolo abbiamo visto solo alcune delle novità che arriveranno con Python 3.9, se vuoi approfondire ulteriormente, puoi consultare la release beta più recente, al momento della scrittura la 3.9.0b5, a questa pagina.