Курс 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. Функциональное программирование в Python
  3. Создание веб-приложения с Flask
  4. OrderedDict — упорядоченный словарь
  5. Обход дочерних элементов BeautifulSoup
  6. Использование эмодзи в Python
  7. Метод rxor для операции побитового исключающего «или»
  8. Циклы в Python
  9. Измерение времени выполнения кода
  10. Установка random seed в Python
  11. Установка и использование emoji
  12. IPython и Jupyter Notebook: руководство
  13. Обязательные аргументы в Python
  14. Хеши в Python
  15. Выход из профиля в Django
  16. Работа с буфером обмена на Python
  17. Разделение строки с регулярными выражениями
  18. Преобразование range в итератор
  19. Работа с argparse
  20. Форматирование кода на Python
  21. Лямбда-функции в Python
  22. Секреты Python
  23. Форматирование вывода списков
  24. Python Ellipsis использование
  25. Создание графики с черепахой
  26. Возвращение нескольких значений через кортеж или класс
  27. Работа со словарями Python
  28. Проверка условий: all и any
  29. Измерение времени выполнения в Python
  30. Распаковка аргументов в Python
  31. Функции any() и all() в Python
  32. Удаление ключей из словаря
  33. Сортировка элементов в Python
  34. Принципы Zen Python
  35. Анализ текста на русском языке с помощью Pymystem3
  36. Профилирование кода на Python
  37. Работа с f-строками 2.0
  38. Склеивание строк без циклов
  39. Подсчет часто встречающихся элементов
  40. Структуры данных в Python
  41. Резервирование символов в Python
  42. Удаление дубликатов с помощью множеств
  43. Отделение звука от видео

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