Справочник · ошибки 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 «Запасные значения и свои переменные».
Другие ошибки
SyntaxErrorNameErrorAttributeErrorTypeErrorIndentationErrorTabErrorValueErrorZeroDivisionErrorIndexErrorKeyErrorRecursionErrorFileNotFoundErrorUnsupportedOperationUnicodeDecodeErrorModuleNotFoundErrorJSONDecodeErrorEOFErrorAssertionErrorValidationErrorMissingSchemaConnectionErrorReadTimeoutHTTPErrorOperationalErrorIntegrityErrorProgrammingErrorNotImplementedError