Курс 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. Взаимодействие с sys
  2. Решение переменной Шредингера
  3. Создание функций высшего порядка
  4. Измерение потребления памяти при сортировке
  5. Утечки переменных цикла в Python 3.x
  6. Объединение словарей в Python
  7. Декораторы с аргументами
  8. Создание панели меню Tkinter
  9. Функции map, filter и reduce
  10. Перемешивание списка с shuffle()
  11. Разделение строки с помощью re.split()
  12. Метод title() в Python
  13. Модуль subprocess: запуск внешних команд
  14. Логические операторы в Python
  15. Форматирование заголовков в Python
  16. Удаление и повторная вставка ключа в OrderedDict
  17. Создание коллекций из выражения-генератора
  18. Копирование файлов с shutil()
  19. Наиболее частотные элементы с помощью Counter
  20. Python Метод Union Множеств
  21. Удаление специальных символов
  22. Обработка исключений в Python
  23. Работа со списками
  24. Генератор чисел Фибоначчи
  25. Beautiful Soup — извлечение данных из HTML
  26. Удаление пробелов методом translate()
  27. Копирование в Python
  28. Многострочные комментарии в Python
  29. Переопределение метода
  30. Функция divmod() в Python
  31. Декораторы в Python
  32. Метод add для класса Vector
  33. Список переменных с %who
  34. Добавление элементов в список
  35. Активация Matplotlib в Jupyter
  36. Метод сравнения объектов в Python
  37. Работа с очередями в Python
  38. Преобразование регистра символов
  39. Атрибуты объекта в Python
  40. Распаковка аргументов в Python
  41. Импорт и использование модулей в Python
  42. Логирование с Loguru
  43. Генераторы списков в Python
  44. Частичное совпадение пользовательского ввода в Python 3.10
  45. Декораторы в Python
  46. Библиотека sh: удобные команды терминала
  47. Форматирование строк в Python

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