Zasięg zmiennych w Python
- Poprzednia strona Iteracja w Python
- Następna strona Moduły w Python
Zmienne są dostępne tylko w obszarze ich utworzenia. To nazywa się zakresem.
Lokalny zakres
Zmienne utworzone wewnątrz funkcji należą do lokalnego zakresu tej funkcji i mogą być używane tylko wewnątrz niej.
Przykład
Zmienne utworzone wewnątrz funkcji są dostępne tylko wewnątrz tej funkcji:
def myfunc(): x = 100 print(x) myfunc()
Funkcja wewnątrz funkcji
Jak w przykładzie powyżej, zmienna x jest niedostępna poza funkcją, ale jest dostępna dla każdej funkcji wewnątrz funkcji:
Przykład
Możliwe jest dostęp do lokalnej zmiennej z funkcji wewnątrz funkcji:
def myfunc(): x = 100 def myinnerfunc(): print(x) myinnerfunc() myfunc()
Zakres globalny
Zmienne utworzone w ciele kodu Pythona są zmiennymi globalnymi, należącymi do globalnego zakresu.
Zmienne globalne są dostępne w każdym zakresie (globalnym i lokalnym).
Przykład
Zmienne utworzone poza funkcją są zmiennymi globalnymi, dostępne dla każdego:
x = 100 def myfunc(): print(x) myfunc() print(x)
Nazywanie zmiennych
Jeśli operujesz na同名 zmiennych wewnątrz i poza funkcją, Python traktuje je jako dwa oddzielne zmienne, jedna dostępna w zakresie globalnym (poza funkcją), a druga w zakresie lokalnym (wewnątrz funkcji):
Przykład
Ta funkcja wyświetli lokalną zmienną x, a następnie kod wyświetli zmienną globalną x:
x = 100 def myfunc(): x = 200 print(x) myfunc() print(x)
Klucz globalny
Jeśli potrzebujesz utworzyć zmienną globalną, ale utknąłeś w lokalnym zakresie, możesz użyć klucza globalnego.
Klucz globalny czyni zmienną zmienną globalną.
Przykład
Jeśli używasz klucza globalnego, zmienna ta należy do globalnego zakresu:
def myfunc(): global x x = 100 myfunc() print(x)
Również, aby zmienić zmienną globalną wewnątrz funkcji, użyj klucza globalnego.
Przykład
Aby zmienić wartość zmiennej globalnej wewnątrz funkcji, użyj klucza globalnego do odniesienia się do tej zmiennej:
x = 100 def myfunc(): global x x = 200 myfunc() print(x)
- Poprzednia strona Iteracja w Python
- Następna strona Moduły w Python