В этой статье мы рассмотрим как используется и для чего нужна глобальная переменная в Python.
Введение
Ключевое слово global в Python объявляет одну или несколько переменных глобальными. Этот оператор используется только в функциях.
По умолчанию переменные, объявленные в функции, являются локальными переменными, то есть доступ к ним возможен только в той функции, в которой они были созданы.
Использование локальных переменных
def hello_user(): name = "Egor" print(f"hello {name}") hello_user() print(f"hi {name}")
Выходные данные
hello Egor NameError: name 'name' is not defined
Пытаясь получить доступ к переменной, которая была создана внутри функции (локальная переменная) вне функции, вы получаете ошибку NameError, потому что эта переменная не известна в глобальной области видимости.
В программировании может потребоваться обращение к локальной переменной в глобальном масштабе, и это становится возможным в Python с помощью глобального оператора.
Глобальная переменная в функции
Для создания глобальной переменной в функции мы используем оператор global:
def hello_user(): global name name = "Egor" print(f"hello {name}") hello_user() print(f"hi {name}")
Выходные данные
hello Egor hi Egor
Обратите внимание, что без global name строка print(f»hi {name}») привела бы к ошибке.
Изменение глобальной переменной в функции
В Python по умолчанию можно получить доступ к глобальным переменным внутри функций, но не изменять их. Глобальный оператор делает работу, позволяя функциям модифицировать значения глобальных переменных в их локальной области видимости.
Пример попытки модификации глобальной переменной в функции:
a = 1 def plus_one(): a = a + 1 print(a) plus_one()
Выходные данные
UnboundLocalError: local variable 'a' referenced before assignment
Используемый оператор global для исправления ошибки доступа к переменной
a = 1 def plus_one(): global a a = a + 1 print(a) plus_one()
Выходные данные
2
Обратите внимание, что глобальная переменная a не создает новую глобальную переменную a, поскольку она уже существует. Она только предоставляет функции доступ к переменной a для модификации или использования.
Заключение
В данной статьи мы рассмотрели как используется и для чего нужна глобальная переменная в Python.