Курс 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"
- Возврат нескольких значений
- Мониторинг памяти с Pympler
- JMESPath в Python
- Создание панели меню Tkinter
- Экранирование символов в Python
- Декоратор @override
- Работа с Enum в Python3.
- Переопределение метода sub
- Python itertools combinations() — группировка элементов
- Управление импортом в Python
- Генераторы в Python
- Lambda-функция в Python: использование с map() и sum()
- Метод join() для объединения элементов
- Шаблоны Flask: условия и циклы
- Переопределение унарных операторов
- Управление памятью в numpy.
- Метод append() для списка
- Сортировка в Python
- Присвоение и ссылки
- Подписка на SelectelNews в Twitter
- Преобразование кортежа в словарь.
- Правила именования переменных
- Векторизация в Python с NumPy.
- Преобразование строк в числа с плавающей запятой
- Метаклассы в Python
- Непрерывная проверка в Python
- Описание скриптов в README
- Оператор continue в Python
- Измерение времени выполнения кода
- Хешируемые ключи в Python
- Функция reduce() из модуля functools
- Комплексные числа в Python
- Метод invert для побитового отрицания
- Поиск файлов по шаблону
- Solidity для DeFi Ethereum
- Экспорт внешнего файла с помощью writefile
- Тестирование с responses
- Функция eval() в Python
- Тернарный оператор в Python
- Аннотации типов в Python
- Метод index() в Python
- Измерение времени выполнения с помощью time
- Обмен значений переменных в Python
- Оператор деления для класса Rational
- Итерации в Python
- Оформление текста в консоли с TermColor















