2.10. Definire le variabili

Adesso che pensate di sapere tutto su dizionari, tuple e liste, torniamo sul nostro programma di esempio, odbchelper.py.

Python possiede il concetto di variabili locali e globali come molti altri linguaggi, ma non contempla la dichiarazione esplicita delle variabili. Le variabili cominciano ad esistere quando assegnamo loro un valore e vengono automaticamente distrutte quando non servono più.

Esempio 2.25. Definire la variabile myParams


if __name__ == "__main__":
    myParams = {"server":"mpilgrim", \
                "database":"master", \
                "uid":"sa", \
                "pwd":"secret" \
                }

Molte cose sono intessanti in questo esempio. Prima di tutto l'indentazione. Un construtto if è un blocco di codice e necessita di essere indentato come una funzione.

Seconda cosa, l'assegnamento della variabile è un'unico comando diviso su molte linee, attraverso un backslash(“\”) come continuatore di linea.

Nota
Quando un comando è diviso su più linee attraverso il continuatore di linea (“\”), la linea seguente può essere indentata in ogni maniera; Le rigide regole di indentazione di Python non vengono applicate. Se il vostro Python IDE auto-indenta la linea continuata, probabilmente dovreste accettare il suo default a meno che non abbiate ottime ragioni per non farlo.
Nota
A rigor di termini, espressioni fra parentesi, parentesi quadre o graffe (come per la definizione di un dizionario), possono essere divise in linee multiple con o senza il carattere di continuazione linea(“\”). Io preferisco includere il backslash anche quando non è richiesto perché credo che renda il codice più leggibile, ma è solo una questione di stile.

Terza cosa, voi non avete mai dichiarato la variabile myParams, le avete semplicemente assegnato un valore. Esattamente come VBScript senza l'opzione option explicit. Fortunatamente, al contrario di VBScript, Python non vi permette di riferirvi ad una variabile a cui non è mai stato assegnato un valore; provare a farlo solleva un'eccezione.

Esempio 2.26.  Riferirsi ad una variabile non assegnata (unbound, "slegata" n.d.T.)

>>> x
Traceback (innermost last):
  File "<interactive input>", line 1, in ?
NameError: There is no variable named 'x'
>>> x = 1
>>> x
1

Un giorno ringrazierete Python per questo.

Ulteriori letture