Курс 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. Функции range() в Python
  2. Управление контекстом с помощью декоратора contextmanager
  3. Преобразование строк в числа в Python
  4. Декораторы в Python
  5. Метод __iand__ для пользовательских классов
  6. Генератор списка с условием if
  7. Методы работы со списками
  8. Декораторы в Python
  9. 9 уловок для чистого кода
  10. Улучшение читаемости кода в Python
  11. Переопределение метода sub
  12. Вакансии в Nebius
  13. Округление в Python
  14. Метод setitem в Python
  15. Оформление кода на Python
  16. F-строки в Python
  17. Работа с датой и временем в Python
  18. Функции any() и all() в Python
  19. Передача параметров в Python
  20. Введение в PyTorch
  21. Метод split() в Python
  22. Математические функции в Python
  23. Работа с парами ключ-значение
  24. discard() — удаление элемента из множества
  25. Установка и использование Telegram API в Python
  26. Удаление элементов из списка в Python
  27. Упрощение работы с JSON-данными в Python
  28. Удаление ссылок в Python
  29. Пропуск начальных строк с помощью dropwhile()
  30. Переопределение метода
  31. Имена объектов в Python
  32. Генерация случайных чисел в Python
  33. Методы list в Python
  34. Настройка вывода NumPy
  35. Изменение объектов в Python
  36. Профилирование кода на Python
  37. Форматирование строк в Python
  38. Оператор space-invader
  39. Переопределение метода __rshift__
  40. Декоратор total_ordering для сравнения объектов
  41. Метод append() для списка
  42. Оператор морж в Python 3.8
  43. Проверка ввода с помощью isdigit
  44. Работа со случайными элементами
  45. Конвертация коллекций в Python

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