Курс 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. Отправка HTTP-запросов с User-Agent
  3. Методы shutil для работы с файлами
  4. Нахождение самого длинного слова в списке с помощью max
  5. Группы исключений в Python
  6. Принципы Zen of Python
  7. Сериализация и десериализация объектов
  8. Множественное наследование в Python
  9. Использование defaultdict в Python
  10. Многострочные комментарии в Python
  11. Нахождение разницы между списками в Python
  12. Упрощенный вывод данных в Python
  13. Оператор распаковки в Python
  14. Особенности ключей словаря в Python
  15. Работа с файлами в Python
  16. Преобразование списка в словарь через генератор
  17. Переворот списка в Python
  18. Расширение информации об ошибке в Python
  19. Функции min(), max(), sum()
  20. Многострочные комментарии в Python
  21. Обучение модели с указанием эпох
  22. Декораторы для регистрации функций
  23. Обрезка изображения с Pillow
  24. Python defaultdict добавление ключа
  25. Объединение словарей в Python
  26. Необязательные аргументы в Python
  27. Вывод символов строки в Python
  28. Создание таблиц в терминале с PrettyTable
  29. Форматирование заголовков в Python
  30. Аннотации типов в Python
  31. Вывод с переменной через запятую
  32. Работа с комбинациями в Python.
  33. Комментарии в Python
  34. Замена текста с помощью sub
  35. Просмотр внешнего файла в Python
  36. Участие в LP стейкинге Waves
  37. Конкатенация строковых литералов
  38. Генерация строк с .join()
  39. Принцип одной функции
  40. Пропуск начальных строк с помощью dropwhile()
  41. Просмотр атрибутов и методов класса
  42. Печать месячного календаря
  43. Тип CodeType в Python.
  44. Объединение строк с помощью метода join
  45. ChainMap избыточные ключи
  46. Получение частей дроби
  47. Многострочные комментарии в Python
  48. Взаимодействие с внешними процессами в Python

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