Ambito Python

Le variabili sono disponibili solo nell'area di creazione. Questo si chiama ambito.

Ambito locale

Le variabili create all'interno di una funzione appartengono all'ambito locale della funzione e possono essere utilizzate solo all'interno della funzione.

Esempio

Le variabili create all'interno di una funzione sono disponibili all'interno della funzione stessa:

def myfunc():
  x = 100
  print(x)
myfunc()

Eseguire l'esempio

Funzione interna alla funzione

Come nell'esempio sopra riportato, la variabile x non è disponibile all'esterno della funzione, ma è disponibile per qualsiasi funzione interna alla funzione:

Esempio

E' possibile accedere a una variabile locale da una funzione interna:

def myfunc():
  x = 100
  def myinnerfunc():
    print(x)
  myinnerfunc()
myfunc()

Eseguire l'esempio

Ambito globale

Le variabili create nel corpo del codice Python sono variabili globali, che appartengono all'ambito globale.

Le variabili globali sono disponibili in qualsiasi ambito (globale e locale).

Esempio

Le variabili create all'esterno di una funzione sono variabili globali, disponibili a tutti:

x = 100
def myfunc():
  print(x)
myfunc()
print(x)

Eseguire l'esempio

Variabile nome

Se si operano con variabili omonime sia all'interno che all'esterno di una funzione, Python le considera due variabili separate, una disponibile in ambito globale (all'esterno della funzione) e una disponibile in ambito locale (all'interno della funzione):

Esempio

La funzione stampa la variabile locale x e poi il codice stampa anche la variabile globale x:

x = 100
def myfunc():
  x = 200
  print(x)
myfunc()
print(x)

Eseguire l'esempio

Parola chiave globale

Se avete bisogno di creare una variabile globale ma siete bloccati nel contesto locale, potete utilizzare la parola chiave global.

La parola chiave global rende la variabile una variabile globale.

Esempio

Se si utilizza la parola chiave global, la variabile appartiene al contesto globale:

def myfunc():
  globale x
  x = 100
myfunc()
print(x)

Eseguire l'esempio

Inoltre, se si desidera modificare una variabile globale all'interno di una funzione, utilizzare anche la parola chiave global.

Esempio

Per modificare il valore di una variabile globale all'interno di una funzione, utilizzare la parola chiave global per riferirsi a tale variabile:

x = 100
def myfunc():
  globale x
  x = 200
myfunc()
print(x)

Eseguire l'esempio