Курс 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"
- Функции range() в Python
- Управление контекстом с помощью декоратора contextmanager
- Преобразование строк в числа в Python
- Декораторы в Python
- Метод __iand__ для пользовательских классов
- Генератор списка с условием if
- Методы работы со списками
- Декораторы в Python
- 9 уловок для чистого кода
- Улучшение читаемости кода в Python
- Переопределение метода sub
- Вакансии в Nebius
- Округление в Python
- Метод setitem в Python
- Оформление кода на Python
- F-строки в Python
- Работа с датой и временем в Python
- Функции any() и all() в Python
- Передача параметров в Python
- Введение в PyTorch
- Метод split() в Python
- Математические функции в Python
- Работа с парами ключ-значение
- discard() — удаление элемента из множества
- Установка и использование Telegram API в Python
- Удаление элементов из списка в Python
- Упрощение работы с JSON-данными в Python
- Удаление ссылок в Python
- Пропуск начальных строк с помощью dropwhile()
- Переопределение метода
- Имена объектов в Python
- Генерация случайных чисел в Python
- Методы list в Python
- Настройка вывода NumPy
- Изменение объектов в Python
- Профилирование кода на Python
- Форматирование строк в Python
- Оператор space-invader
- Переопределение метода __rshift__
- Декоратор total_ordering для сравнения объектов
- Метод append() для списка
- Оператор морж в Python 3.8
- Проверка ввода с помощью isdigit
- Работа со случайными элементами
- Конвертация коллекций в Python















