2.5. Indentare il codice

Le funzioni in Python non hanno un inizio o fine esplicito, nessuna parentesi graffa che indichi dove il codice inizia o finisce. L'unico delimitatore sono i due punti (“:”) e l'indentazione del codice.

Esempio 2.7. Indentazione della funzione buildConnectionString


def buildConnectionString(params):
    """Build a connection string from a dictionary of parameters.

    Returns string."""
    return ";".join(["%s=%s" % (k, v) for k, v in params.items()])

I blocchi di codice (funzioni, istruzioni if, cicli for, ecc.) sono definiti dalla loro indentazione. L'indentazione inizia un blocco e la rimozione dell'indentazione lo termina; non ci sono graffe, parentesi o parole chiave. Lo spazio in mezzo è insignificante e non è obbligatorio. In questo esempio il codice (inclusa la doc string) è indentato di 4 spazi. Se non vi sono 4 spazi non abbiamo la giusta coerenza. La prima linea non indentata non fa parte della funzione.

Dopo qualche protesta iniziale e diverse sarcastiche analogie con Fortran, farete pace con ciò e inizierete a vederne i benefici. Un importante beneficio è che tutti i programmi Python hanno lo stesso aspetto poiché l'indentazione è un requisito del linguaggio e non una questione di stile. Questo fatto rende più facile ad altre persone leggere e capire il codice Python.

Nota
Python usa il ritorno a capo per separare le istruzioni e i due punti e l'indentazione per separare i blocchi di codice. C++ e Java usano un punto e virgola per separare le istruzioni e le parentesi graffe per separare i blocchi di codice.

Ulteriori letture