Курс 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. Метод count в Python: почему count(», ») возвращает 4?
  2. Создание инструмента обнаружения плагиата
  3. Поиск наиболее частого элемента списке
  4. Множественное назначение в Python
  5. Поиск индексов в списке
  6. Изменение IP-адреса в Python
  7. Библиотека itertools: объединение списков
  8. Работа с путями в Python
  9. Функция print() — вывод информации
  10. Очистка данных с Pandas
  11. Виртуальные среды в Python
  12. Проверка на палиндром
  13. Отрицательные индексы списков
  14. Возврат нескольких значений из функции
  15. Декоратор @override
  16. Освоение Python
  17. Создание комплексных чисел
  18. Работа с OpenCV
  19. Особенности множеств в Python
  20. Сложные типы данных в Python
  21. Разрешение имен в Python
  22. Разделение строки с помощью re.split()
  23. Подписка на каналы разработчиков
  24. Очистка входных данных
  25. Получение локальных переменных в Python
  26. Область видимости переменных в Python
  27. Создание .exe файла с pyinstaller
  28. Генерация строк с .join()
  29. Обработка ошибок в Python
  30. PrettyTable: создание таблицы
  31. Магические методы в Python
  32. Подсчет элементов в списке с Counter
  33. Тестирование с responses
  34. Определение функций с необязательными аргументами
  35. Конкатенация строк с методом join()
  36. Работа с часовыми поясами в Python
  37. Удаление символов новой строки в Python.
  38. Отладка в Python
  39. Удаление первого элемента списка
  40. Профилирование данных с Pandas.
  41. Особенности запятых в Python
  42. Сравнение def и lambda в Python
  43. Избегайте использования goto
  44. Оптимизация создания строк
  45. Оператор zip в Python
  46. Работа с контекстным менеджером Pool
  47. UserList в Python: Описание и примеры использования

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