Курс Python → Обработка исключения UnboundLocalError

Исключение UnboundLocalError может возникнуть, когда переменная, которая имеет значение, не может быть использована из-за того, что она не была инициализирована в определенной области видимости. Это может произойти из-за того, что переменная была переопределена внутри функции, делая ее локальной и скрывая другие переменные с таким же именем из внешних областей.

Для примера, рассмотрим следующий код:


def foo():
    x = 10
    print(x)
    x = 20
    print(x)
    print(y)

y = 5
foo()

В этом примере, переменная x в функции foo присваивается новое значение, что делает ее локальной переменной внутри функции. Когда функция пытается напечатать переменную y, которая не была инициализирована внутри функции, возникает исключение UnboundLocalError.

Чтобы избежать этой ошибки, можно явно указать, что переменная не является локальной, используя ключевое слово global или nonlocal. Например:


def foo():
    global x
    x = 10
    print(x)
    x = 20
    print(x)
    print(y)

y = 5
foo()

В этом случае, переменная x будет использоваться как глобальная переменная, и исключение UnboundLocalError не будет возникать.

Твои коллеги будут рады, поделись в

Автор урока

Дмитрий Комаровский
Дмитрий Комаровский

Автоматизация процессов
в КраснодарБанки.ру

Другие уроки курса "Python"

  1. Удаление элемента из списка
  2. Введение в PyTorch
  3. Оценка выражений генератора в Python
  4. Методы и функции в Python
  5. Работа с defaultdictами в Python
  6. Преобразование строк в числа в Python
  7. TypedDict для kwargs в Python 3.12
  8. Работа с срезами в Numpy
  9. Проверка индексов коллекции
  10. Метод count() для списков
  11. Форматирование строк в Python
  12. Скрытие вывода данных
  13. JSON-esque в Python
  14. Делегирование в Python
  15. Работа с модулем os в Python
  16. Удаление дубликатов из списка
  17. Вставка переменных в шаблоны Flask
  18. Передача аргументов в Python
  19. Управление сессиями в Python
  20. Сравнение объектов в Python
  21. Метод getitem для доступа к элементам последовательности
  22. Определение основы слова с showballstemmer
  23. Извлечение аудио из видео
  24. Подсказки при вводе данных в Python
  25. Работа с контекстными переменными
  26. Создание итерируемых объектов
  27. Очистка данных с Pandas
  28. Python union() функция — объединение множеств
  29. Настройка шрифта и цвета в Tkinter
  30. Поиск наиболее частого элемента списке
  31. Python 3.12: переиспользование кавычек
  32. Сериализация объектов в Python
  33. Глобальные переменные в Python
  34. Функция sleep() в Python
  35. Поиск анаграмм с Counter
  36. Оператор in для проверки наличия элемента
  37. Анализ текста на русском языке с помощью Pymystem3
  38. Цикл for в Python
  39. Определение наиболее частого элемента с помощью collections.Counter
  40. Списковые включения в Python
  41. Проверка типа объекта в Python
  42. Методы list в Python
  43. Транспонирование 2D-массива с помощью zip
  44. Новшества Flask 2.0

Marketello читают маркетологи из крутых компаний