UnboundLocalError
Исключение, возникающее при обращении к несвязанной переменной.
Поднимается в случае обращения к локальной переменной (в функции/методе), с которой [ранее] не было связано значение.
В примере выше внутри функции
outer = 1
def update_outer():
# Строка ниже поднимает исключение:
# UnboundLocalError: local variable 'outer' referenced before assignment
if outer == 1:
outer = 2
update_outer()
В примере выше внутри функции
update_outer
переменная outer
считается локальной потому что именно там (ниже по коду) она связывается со значением 2
, поэтому обращение к переменной в условии if outer == 1
вызывает исключение. Если подразумевается, что функция должна обновить значение переменной outer
из внешней области следует воспользоваться специальными инструкциями global
или nonlocal
.
Синонимы поиска: UnboundLocalError
На заметку
В разделе «События» можно узнать о надвигающихся событиях мира Python, а также поделиться своими. Если вы являетесь организатором встречи/конференции/спринта, зарегистрируйте это событие в указанном разделе, чтобы о нём узнали все желающие.