Курс 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. Дефолтные параметры в Python
  2. Создание лямбда-функций
  3. Печать комбинаций в Python с Itertools
  4. Добавление элемента в список.
  5. Работа с областями видимости переменных
  6. Метод classmethod
  7. Расчет времени выполнения
  8. Установка и использование TensorFlow
  9. Python: библиотеки и функции
  10. Функция divmod() в Python
  11. Сложные типы данных в Python
  12. Сортировка элементов в Python
  13. Декораторы в Python
  14. Исправление ошибки NameError
  15. UserList в Python: Описание и примеры использования
  16. Генераторы в Python
  17. Создание функций с произвольным количеством аргументов
  18. Рациональные числа в Python
  19. Конкатенация строк в Python
  20. Работа с Telegram API на Python
  21. lru_cache оптимизация функций
  22. Объединение словарей в Python
  23. Именованные аргументы в Python
  24. Применение команды break
  25. Установка и использование Logzero
  26. Асинхронное выполнение задач в Python
  27. Фильтрация списка чисел
  28. Чтение и запись TOML-конфигов
  29. Проверка запуска скрипта или импорта модуля
  30. Обработка ошибок в Python
  31. Отображение графиков в Jupyter с Matplotlib
  32. Преобразование символов с помощью map
  33. Оформление текста в консоли с TermColor
  34. Изменение IP-адреса в Python
  35. Комментарии в Python
  36. Работа со стеком в Python
  37. Команда %dhist — список посещенных каталогов
  38. Работа со строками в Python.
  39. Вывод букв строки в Python
  40. Равенство и идентичность в Python
  41. Удаление дубликатов из списка с помощью dict.fromkeys
  42. Генерация случайных чисел Python
  43. Генераторы в Python
  44. Метод lt для сортировки объектов

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