Курс 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"
- Импортирование в Python
- Операции с комплексными числами
- Моржовый оператор в Python 3.8
- Создание вложенных циклов for
- Импорт объектов из модулей
- Функция zip() в Python
- Разделение строки на подстроки в Python
- Многопоточность в Python
- Метод сравнения объектов в Python
- Передача параметров в Python
- Аннотации типов в Python
- Списковые включения в Python
- Функция enumerate() в Python
- Метод rsub для пользовательских чисел
- Создание словарей с defaultdict()
- Работа с множествами в Python
- Изменение списка срезом
- Скрытие вывода данных
- Функции с необязательными аргументами
- Запрос пароля с помощью getpass
- Структура строк в Python
- Работа с модулем bisect
- Модуль xkcd: загрузка комиксов
- Хеширование паролей с использованием salt
- Списки в Python
- Работа с CSV в Python
- Атрибуты класса и экземпляра
- Перевод двоичного кода в целое число
- Модуль subprocess: запуск внешних команд
- Декораторы в Python
- Метод округления чисел
- Методы HTTP запросов в Flask
- Оптимизация поиска в словарях
- Применение функции к списку
- Фильтры Pillow: NEAREST, BILINEAR, BICUBIC
- Курс Data Scientist в медицине
- Обрезка изображения с Pillow
- Модуль future Python
- Основы работы с os
- Улучшенные подсказки для импорта в Python 3.12
- Скачать видео с YouTube
- Декоратор @override
- Функция zip() в Python
- Разрешение имен в Python
- Работа с функцией next() в Python
- Создание списка через итерацию















