Курс 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. Библиотека Emoji: использование смайлов в Python
  2. Преобразование данных в Python
  3. Структуры данных в Python
  4. Модуль array: создание и использование массивов
  5. Оформление кода по PEP 8
  6. Избегание изменяемых аргументов
  7. Установка и использование Telegram API в Python
  8. Автоматизация скриптов на AWS Lightsail.
  9. Функция sleep() в Python
  10. Транспонирование 2D-массива с помощью zip
  11. Проверка условий в Python
  12. Удаление символа из строки
  13. Использование двоеточия в Python
  14. Получение идентификатора объекта в памяти
  15. Обработка исключений в Python
  16. Работа с переменными в Python
  17. Списковые включения в Python
  18. Применение функции к списку
  19. Объединение строк с помощью метода join
  20. Установка и использование TensorFlow
  21. Monkey Patching в Python
  22. Создание файла с проверкой ошибки
  23. Объединение списков с помощью zip
  24. Создание лямбда-функций
  25. Нахождение отличий в списках
  26. Работа с кортежами в Python
  27. Поиск элементов BeautifulSoup
  28. Установка и использование модуля Wikipedia
  29. Преобразование данных в Python
  30. Генератор надежных паролей
  31. Метод join() с набором
  32. Объединение словарей в Python
  33. Удаление элемента из списка
  34. Функция pow() — возвести число в степень
  35. Управление доступом к модулю
  36. Округление дробей в Python
  37. Класс UserDict: дополнительная функциональность
  38. Модуль xkcd: добавление юмора в Python
  39. Регулярные выражения в Python
  40. Изменение регистра данных
  41. Цикл for в Python
  42. Избегайте ошибку FileNotFoundError
  43. Профилирование кода
  44. Python groupby() из itertools: работа с повторяющимися элементами
  45. Создание и использование ChainMap
  46. Особенности ключей словаря в Python
  47. Быстрый поиск кода

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