Исключение, возникающее при обращении к несвязанной переменной.

Поднимается в случае обращения к локальной переменной (в функции/методе), с которой [ранее] не было связано значение.

    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, а также поделиться своими. Если вы являетесь организатором встречи/конференции/спринта, зарегистрируйте это событие в указанном разделе, чтобы о нём узнали все желающие.