Che cosa sta facendo questo strano comportamento del colon?

| | |

Sto usando Python 3.6.1 e mi sono imbattuto in qualcosa di molto strano. Ho avuto un semplice errore di battitura nell'assegnazione del dizionario che mi ha richiesto molto tempo per trovarlo.

context = {} context["a"]: 2 print(context) 

Output

{} 

Che cosa sta facendo il codice context["a"]: 2? Non genera un SyntaxError quando dovrebbe IMO. All'inizio pensavo che stesse creando una slice. Tuttavia, digitando repr(context["a"]: 2) solleva un SyntaxError. Ho anche digitato context["a"]: 2 nella console e la console non ha stampato nulla. Ho pensato che forse restituisse Nessuno, ma non ne sono così sicuro.

Ho anche pensato che potesse essere un'istruzione if a riga singola, ma quella non dovrebbe essere sintassi corretta.

Inoltre, context["a"] dovrebbe generare un KeyError.

Sono perplesso. Cosa sta succedendo?