Глобальные переменные в 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 в Python объявляет одну или несколько переменных глобальными. Этот оператор используется только в функциях.

Обратите внимание, что без global name строка print(f»hi {name}») привела бы к ошибке.

Изменение глобальной переменной в функции

В Python по умолчанию можно получить доступ к глобальным переменным внутри функций, но не изменять их. Глобальный оператор делает работу, позволяя функциям модифицировать значения глобальных переменных в их локальной области видимости.

Пример попытки модификации глобальной переменной в функции:

a = 1

def plus_one():
    a = a + 1
    print(a)

plus_one()

Так же у меня есть группа ВКонтакте @yegorovegor. Обязательно подпишись!

Выходные данные

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 для модификации или использования.

close

Изучаешь Python?

Оформи подписку и получи моментальный доступ к новым публикациям

Обязательно прочитайте другие статьи посвященные языку программирования Python


GeekUniversity - обучение до уровня Middle с гарантированным трудоустройством

Добавить комментарий

Ваш адрес email не будет опубликован