Справочник · ошибки Python

UnboundLocalError

Переменную внутри функции используют раньше, чем ей дали значение.

Python пишет ошибку в последней строке сообщения: сначала название, после двоеточия — подробности. Найди своё сообщение ниже — рядом объяснение простыми словами и что исправить.

Внешнюю переменную не поменять

count = 0

def add():
    count = count + 1

add()
Python сообщает об ошибке
UnboundLocalError: cannot access local variable 'count' where it is not associated with a value
Что случилось
Функция меняет переменную count, а она создана снаружи.
Почему так бывает
Когда функция кладёт значение в имя, Python считает его своим, внутренним. Значение снаружи она при этом не видит.
Как исправить
Передай значение в параметр, а новое верни через return.

Разбираем в уроке 5.4 «Запасные значения и свои переменные».

Другие ошибки