Hello World
1.6K subscribers
71 photos
6 videos
3 files
161 links
Be so good that you cannot be ignored. And then, go one step beyond.
Download Telegram
Использование переменной, не определенной в области
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 любая переменная, задекларированная вне функции, по-умолчанию определена как глобальная.
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