Курс 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. Объединение списков в строку
  2. Комментарии в Python
  3. Поиск индекса элемента в списке
  4. Установка Home Assistant
  5. Активация Matplotlib в Jupyter
  6. Форматирование строк в Python
  7. Оптимизация создания строк
  8. Генерация случайных чисел в Python
  9. Открытие и запись файлов
  10. Генерация случайных чисел в Python
  11. Запуск Python из интерпретатора
  12. discard() — удаление элемента из множества
  13. Распаковка элементов последовательности
  14. Повторение элементов в Python
  15. Декораторы в Python
  16. Оператор in в Python
  17. Работа с комплексными числами в Python
  18. Метод hash в Python
  19. Непрерывная проверка в Python
  20. Сокращение ссылок с pyshorteners
  21. Разделение строк методом split()
  22. Оптимизация строк в Python
  23. Работа с изображениями PIL
  24. Повторение элементов в Python
  25. Экспорт функций в Python
  26. Функция pow() — возвести число в степень
  27. Метод __getitem__ в Python
  28. Работа с Requests для HTTP-запросов
  29. Подсчет элементов в списке с Counter
  30. Замена текста с re.sub()
  31. Расширение операции побитового «и» в Python
  32. Проверка элемента в множестве.
  33. Создание функций с произвольным количеством аргументов
  34. Создание комплексных чисел
  35. Функция findall() для поиска вхождений строки
  36. Декораторы в Python
  37. Присоединение элементов коллекции
  38. Работа с комплексными числами
  39. Counter() — подсчет элементов
  40. Работа с библиотекой requests
  41. Извлечение аудио из видео
  42. Работа с файлами и директориями в Python.
  43. Открытие и редактирование скриптов Python
  44. Конкатенация строк в Python
  45. Сохранение и загрузка модели в PyTorch
  46. Генерация строк с .join()
  47. Генераторы в Python

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