Ошибка UnboundLocalError в Python при работе с вложенными функциями возникает из-за того, что Python автоматически считает переменную локальной для той области, в которой ей присвоено значение. 25 При этом он скрывает любую переменную с аналогичным именем в любой вышестоящей области. 5
Обычно ошибка появляется в следующих случаях: 3
Чтобы избежать ошибки, можно использовать ключевое слово nonlocal. 14 Оно позволяет получить доступ к переменной из охватывающей внешней функции и изменять её значение внутри вложенной функции без воздействия на глобальное пространство имён. 1