Perché gli oggetti creati senza assegnazione non generano un errore di sintassi in Python?

0

Mentre lavoravo su un progetto Python, mi sono reso conto che durante il mio editing avevo lasciato una stringa fluttuante nel mezzo del mio codice e non ha generato un errore. Ad esempio, queste poche righe vengono eseguite correttamente:

print("Starting")

"This string does nothing"
["Neither does", "this list"]

print("Done")

Output:

Starting
Done

Mi sembra che poiché non ci sono istruzioni o chiamate di funzione, quelle dovrebbero generare errori di sintassi. Perché non c'è nessuna eccezione sollevata, e c'è qualche uso per un costrutto come questo?

    
posta skrrgwasme 11.12.2014 - 18:35
fonte

1 risposta

3

È una dichiarazione di espressione . Nel REPL, il repr del risultato di un'istruzione espressione viene stampato se non è None . Si usa sempre questo tipo di istruzione quando si chiamano le funzioni:

f(x)

È solo che quelle funzioni tipicamente hanno effetti collaterali, mentre i letterali no. Questa è una caratteristica sintattica comune delle lingue imperative con una distinzione espressione-espressione.

    
risposta data 11.12.2014 - 18:45
fonte

Leggi altre domande sui tag