Курс 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 Метод del.
  2. Работа с CSV файлами
  3. Метод ne для сравнения объектов
  4. Установка и использование Logzero
  5. Модуль antigravity: генерация координат
  6. Безопасный доступ к значениям словаря
  7. Доступ к локальным переменным
  8. Удаление falsy-значений из списка с помощью filter
  9. Работа с enumerate()
  10. Структура данных deque в Python
  11. Метод Enumerate() для списков
  12. Объединение словарей в Python
  13. Получение значений из словарей
  14. Многопроцессорное программирование в Python
  15. Пропуск начальных строк с помощью dropwhile()
  16. Преобразование в float
  17. Работа с f-строками 2.0
  18. Python Метод Union Множеств
  19. Сортировка с помощью key
  20. Измерение времени выполнения кода
  21. Удаление дубликатов из списка с помощью dict.fromkeys
  22. Сложные типы данных в Python
  23. Создание namedtuple из словаря
  24. Метод округления чисел
  25. Метод index() в Python
  26. Объединение списков в Python
  27. Лямбда-функции в Python
  28. Итерация по коллекции в Python
  29. Сравнение def и lambda функций в Python
  30. Определение имен функций
  31. Работа с файловой системой в Python
  32. Отслеживание выполнения программы с библиотекой tqdm
  33. Функция zip() в Python
  34. Генераторы словарей и множеств
  35. Проверка ввода с помощью isdigit
  36. Генератор списка с условием if
  37. Оператор «or» в Python
  38. Транспонирование 2D-массива с помощью zip
  39. Реверс строки и списка в Python.
  40. Использование двоеточия в Python
  41. Генераторы в Python
  42. Поиск шаблона в строке
  43. Создание уникального проекта
  44. Подчеркивание в REPL
  45. Регистрация на TenChat
  46. Особенности множеств в Python
  47. Flask: создание веб-приложений
  48. Извлечение новостей с помощью newspaper3k

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