Zakres Pythona
Zmienna jest dostępna tylko z wewnątrz regionu, w którym została utworzona. Nazywa się to zakresem .
Zakres lokalny
Zmienna utworzona wewnątrz funkcji należy do lokalnego zakresu tej funkcji i może być używana tylko wewnątrz tej funkcji.
Przykład
Zmienna utworzona wewnątrz funkcji jest dostępna wewnątrz tej funkcji:
def myfunc():
x = 300
print(x)
myfunc()
Funkcja wewnątrz funkcji
Jak wyjaśniono w powyższym przykładzie, zmienna x
nie jest dostępna poza funkcją, ale jest dostępna dla dowolnej funkcji wewnątrz funkcji:
Przykład
Dostęp do zmiennej lokalnej można uzyskać z funkcji w funkcji:
def myfunc():
x = 300
def myinnerfunc():
print(x)
myinnerfunc()
myfunc()
Zakres globalny
Zmienna utworzona w głównej części kodu Pythona jest zmienną globalną i należy do zasięgu globalnego.
Zmienne globalne są dostępne z dowolnego zakresu, globalnego i lokalnego.
Przykład
Zmienna utworzona poza funkcją ma charakter globalny i może być używana przez każdego:
x = 300
def myfunc():
print(x)
myfunc()
print(x)
Nazewnictwo zmiennych
Jeśli operujesz z tą samą nazwą zmiennej wewnątrz i na zewnątrz funkcji, Python potraktuje je jako dwie oddzielne zmienne, jedną dostępną w zasięgu globalnym (poza funkcją) i jedną dostępną w zasięgu lokalnym (wewnątrz funkcji):
Przykład
Funkcja wypisze local x
, a następnie kod wypisze globalne x
:
x = 300
def myfunc():
x = 200
print(x)
myfunc()
print(x)
Globalne słowo kluczowe
Jeśli potrzebujesz utworzyć zmienną globalną, ale utknąłeś w zakresie lokalnym, możesz użyć
global
słowa kluczowego.
Słowo global
kluczowe czyni zmienną globalną.
Przykład
Jeśli użyjesz global
słowa kluczowego, zmienna należy do zakresu globalnego:
def myfunc():
global x
x = 300
myfunc()
print(x)
Użyj również global
słowa kluczowego, jeśli chcesz dokonać zmiany w zmiennej globalnej wewnątrz funkcji.
Przykład
Aby zmienić wartość zmiennej globalnej wewnątrz funkcji, odwołaj się do zmiennej za pomocą global
słowa kluczowego:
x = 300
def myfunc():
global x
x = 200
myfunc()
print(x)