Курс 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. Транспонирование 2D-массива с помощью zip
  2. Описание скриптов в README
  3. Операторы объединения в Python 3.9
  4. Применение функций в Python
  5. Взаимодействие с внешними процессами в Python
  6. Добавление Progressbar в Python
  7. Шаблоны Flask: условия и циклы
  8. Python и Монти Пайтон
  9. ChainMap избыточные ключи
  10. Получение списка кортежей из словаря
  11. Запуск внешних программ с subprocess
  12. Создание объекта timedelta
  13. Метод count в Python: почему count(», ») возвращает 4?
  14. Получение значений из словарей
  15. Декоратор Ajax required
  16. Декораторы в Python
  17. Выражения-генераторы в Python
  18. Освобождение памяти в Python
  19. Метод __iand__ для пользовательских классов
  20. Модуль itertools: комбинации и перестановки
  21. Работа с множествами в Python
  22. Функция count() в Python
  23. Метод split() в Python
  24. Переопределение метода len
  25. Поиск уникальных элементов строкой в Python
  26. Оформление кода на Python
  27. Разделение строк методом split()
  28. Преобразование Excel в PDF с Spire.XLS
  29. Генерация случайных чисел в Python
  30. Искажение имен в Python
  31. Улучшенные подсказки для импорта в Python 3.12
  32. Фильтрация последовательности
  33. Сортировка и разворот списка
  34. Создание генераторов в Python
  35. Встраивание HTML в Jupyter Notebook
  36. Хэш-функции в Python
  37. Работа с timedelta в Python
  38. Закрытие файла в Python
  39. Работа с CSV файлами
  40. Хешируемые ключи в Python
  41. Работа со строками в Python
  42. Частичное совпадение пользовательского ввода в Python 3.10
  43. Работа с буфером обмена на Python
  44. Обработка исключения UnboundLocalError
  45. История Python

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