Основные причины ошибки UnboundLocalError в Python:
- Использование локальной переменной до того, как она была объявлена или инициализирована. 1 Это происходит, когда на локальную переменную ссылаются до того, как ей было присвоено значение в функции или методе. 2
- Назначение переменной внутри блока try. 2 Если исключения не возникает, оно выводит значение переменной за пределы блока try, что приводит к UnboundLocalError, поскольку переменная может не быть определена. 2
- Переназначение глобальной переменной внутри блока except. 2 Ошибка возникает из-за того, что функция обрабатывает глобальную переменную как локальную из-за операции присваивания в блоке try. 2
Чтобы избежать возникновения ошибки UnboundLocalError, важно грамотно определить область видимости переменных. 1 Если требуется изменить значение глобальной переменной изнутри функции, нужно объявить её там как global. 1 Если речь идёт о вложенных функциях, следует использовать nonlocal. 1