Курс 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"
- Поиск наиболее частого элемента в списке
- enumerate() в Python для работы с индексами
- Модуль Operator в Python
- Хранение переменных в словаре.
- Работа с аргументами командной строки в Python
- Создание списка дат
- Поиск индексов в списке
- Генераторы списков в Python
- Генераторы в Python
- Математические функции в Python
- lru_cache оптимизация функций
- Изменяемые и неизменяемые объекты
- Уникальные значения из списка
- Открытие, чтение и закрытие файла
- Пространство имен в Python
- Создание вложенного генератора
- Объединение списков в Python
- Оператор морж в Python 3.8
- Перевернуть список в Python
- Метод enumerate() в Python
- Группировка элементов Python
- Скрытие вывода данных
- Оптимизация памяти с помощью __slots__
- Экспорт внешнего файла с помощью writefile
- Возвращение нескольких значений через кортеж или класс
- Проверка вхождения подстроки
- Возврат нескольких значений
- Библиотека funcy: удобные утилиты
- Обход словаря в Python
- Глобальные переменные в Python
- JMESPath в Python
- Установка и использование Python-dateutil
- Работа с модулем random
- Функция eval() в Python
- Поиск самого частого элемента
- Оптимизация создания строк
- Пропуск строк в файле с itertools
- Работа с deque в Python
- Упрощенный вывод данных в Python
- Работа с файлами и директориями в Python.
- UserString в Python
- Создание генераторов в Python
- Закрытие файла в Python
- Управление доступом к модулю
- Методы Python для работы с данными















