Курс 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. Bootle — простой веб-фреймворк
  2. Генераторы и сеты в Python
  3. Использование super() в Python
  4. Лимиты на ресурсы Python
  5. Обработка исключений в Python
  6. Форматирование кода на Python
  7. Преобразование в float
  8. Автоматизация скриптов на AWS Lightsail.
  9. Добавление элемента к кортежу
  10. Нахождение хеша для бесконечности и NaN в Python
  11. Обмен значений переменных в Python
  12. Фильтрация списка чисел
  13. Библиотека wikipedia для Python
  14. Список переменных в Python
  15. Множественное назначение в Python
  16. Преобразование range в итератор
  17. Запуск асинхронной корутины
  18. Подсчет элементов в Python
  19. Аннотации типов в Python
  20. Атрибуты класса и экземпляра
  21. Импортирование в Python
  22. Преобразование списка в словарь через генератор
  23. Метод join() для объединения элементов
  24. Создание детектора плагиата
  25. Декораторы в Python
  26. TypedDict для kwargs в Python 3.12
  27. Создание функций высшего порядка
  28. Копирование файлов с shutil()
  29. Работа с библиотекой requests
  30. Функция reduce() в Python
  31. Тестирование модели в PyTorch
  32. Удаление дубликатов из списка
  33. Модуль itertools: комбинации и перестановки
  34. Декодирование байтов в строку
  35. Подсчет частотности элементов в Python
  36. Поиск индексов в списке
  37. Изменение списка срезом
  38. Метод join() для объединения элементов строки
  39. Модуль os в Python: работа с файлами
  40. Динамическая типизация в Python
  41. Конкатенация строк с помощью join()
  42. Импорт модуля из другого каталога
  43. Ускорение обработки данных с %autoawait
  44. Передача неизвестных аргументов в Python.
  45. Генераторы в Python
  46. Методы работы со списками
  47. Замена текста с помощью sub
  48. Открытие и редактирование скриптов Python
  49. Замена символов в Python

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