Python-omfattning

Variabler är endast tillgängliga inom skapningsområdet. Detta kallas riktning.

Lokal riktning

Variabler som skapas inuti en funktion tillhör den lokala riktningen för denna funktion och kan bara användas inom denna funktion.

Exempel

Variabler som skapas inuti en funktion är tillgängliga inom denna funktion:

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

Kör exempel

Funktion inom funktion

Som i föregående exempel är variabeln x inte tillgänglig utanför funktionen, men är tillgänglig för alla funktioner inom funktionen:

Exempel

Kan komma åt en lokal variabel från en funktion inom en funktion:

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

Kör exempel

Global omgivning

Variabler som skapas i huvudkoden i Python är globala variabler, som tillhör den globala omgivningen.

Globala variabler är tillgängliga i alla omgivningar (både globala och lokala).

Exempel

Variabler som skapas utanför en funktion är globala variabler, tillgängliga för alla:

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

Kör exempel

Namngivna variabler

Om du använder samma namn för variabler både inom och utanför en funktion, kommer Python att betrakta dem som två separata variabler, en som är tillgänglig i den globala omgivningen (utanför funktionen) och en som är tillgänglig i den lokala omgivningen (inom funktionen):

Exempel

Funktionen kommer att skriva ut den lokala variabeln x, och koden kommer sedan att skriva ut den globala variabeln x:

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

Kör exempel

Global nyckelord

Om du behöver skapa en global variabel men är fast i den lokala omgivningen, kan du använda global nyckelord.

Global nyckelord gör variabeln till en global variabel.

Exempel

Om du använder global nyckelord, tillhör variabeln den globala omgivningen:

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

Kör exempel

Dessutom, om du vill ändra en global variabel inom en funktion, använd också global nyckelord.

Exempel

För att ändra värdet på en global variabel inom en funktion, använd global nyckelord för att hänvisa till variabeln:

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

Kör exempel