Использование переменной, не определенной в области
Вывод:
Объяснение:
▪️Когда ты назначаешь переменную в области видимости, она становится локальной. Таким образом, переменная a становится локальной для области func2, но поскольку она ранее не была инициализирована в той же области, возникает ошибка.
▪️Чтобы изменить внешнюю переменную области a в func2, используй ключевое слово global:
Вывод:
#global
a = 42
def func1():
return a
def func2():
a += 1
return a
Вывод:
>>> func1()
42
>>> func2()
UnboundLocalError: local variable 'a' referenced before assignment
Объяснение:
▪️Когда ты назначаешь переменную в области видимости, она становится локальной. Таким образом, переменная a становится локальной для области func2, но поскольку она ранее не была инициализирована в той же области, возникает ошибка.
▪️Чтобы изменить внешнюю переменную области a в func2, используй ключевое слово global:
def func2()
global a
a += 1
return a
Вывод:
>>> func2()
43
#global
Global Variables
В Python любая переменная, задекларированная вне функции, по-умолчанию определена как глобальная.
Но если попытаться изменить эту переменную внутри функции, мы наткнемся на ошибку:
Поэтому существует специальное слово global:
📌Любая переменная внутри функции по-умолчанию определена как локальная
📌Любая переменная снаружи функции по-умолчанию определена как глобальная
📌Мы используем ключевое слово global для того, чтобы модифицировать глобальную переменную внутри функции
📌Использование global снаружи функции не даст никакого эффекта
#tips #global
В Python любая переменная, задекларированная вне функции, по-умолчанию определена как глобальная.
c = 1
def add():
print(c)
add()
#выведет
1
Но если попытаться изменить эту переменную внутри функции, мы наткнемся на ошибку:
c = 1
def add():
c = c + 1
print(c)
add()
#выведет
UnboundLocalError: local variable ‘c’ referenced before assignment
Поэтому существует специальное слово global:
c = 1
def add()
global c
c = c + 1
print(‘Inside:’, c)
add()
print(‘Outside:’, c)
#выведет
Inside: 2
Outside: 2
📌Любая переменная внутри функции по-умолчанию определена как локальная
📌Любая переменная снаружи функции по-умолчанию определена как глобальная
📌Мы используем ключевое слово global для того, чтобы модифицировать глобальную переменную внутри функции
📌Использование global снаружи функции не даст никакого эффекта
#tips #global