Курс 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"
- Bootle — простой веб-фреймворк
- Генераторы и сеты в Python
- Использование super() в Python
- Лимиты на ресурсы Python
- Обработка исключений в Python
- Форматирование кода на Python
- Преобразование в float
- Автоматизация скриптов на AWS Lightsail.
- Добавление элемента к кортежу
- Нахождение хеша для бесконечности и NaN в Python
- Обмен значений переменных в Python
- Фильтрация списка чисел
- Библиотека wikipedia для Python
- Список переменных в Python
- Множественное назначение в Python
- Преобразование range в итератор
- Запуск асинхронной корутины
- Подсчет элементов в Python
- Аннотации типов в Python
- Атрибуты класса и экземпляра
- Импортирование в Python
- Преобразование списка в словарь через генератор
- Метод join() для объединения элементов
- Создание детектора плагиата
- Декораторы в Python
- TypedDict для kwargs в Python 3.12
- Создание функций высшего порядка
- Копирование файлов с shutil()
- Работа с библиотекой requests
- Функция reduce() в Python
- Тестирование модели в PyTorch
- Удаление дубликатов из списка
- Модуль itertools: комбинации и перестановки
- Декодирование байтов в строку
- Подсчет частотности элементов в Python
- Поиск индексов в списке
- Изменение списка срезом
- Метод join() для объединения элементов строки
- Модуль os в Python: работа с файлами
- Динамическая типизация в Python
- Конкатенация строк с помощью join()
- Импорт модуля из другого каталога
- Ускорение обработки данных с %autoawait
- Передача неизвестных аргументов в Python.
- Генераторы в Python
- Методы работы со списками
- Замена текста с помощью sub
- Открытие и редактирование скриптов Python
- Замена символов в Python















