По порядку Junior Функции и области видимости обновлено
Порядок поиска имён LEGB
Вопрос
Расставьте области в том порядке, в котором Python ищет имя внутри вложенной функции.
Попробуйте сами
Расставьте шаги по порядку стрелками.
- 1Области охватывающих функций
- 2Локальная область текущей функции
- 3Встроенные имена (builtins)
- 4Глобальная область модуля
Показать ответ и разбор
Коротко
Это правило LEGB: Local, Enclosing, Global, Built-in. Поэтому локальная переменная перекрывает глобальную, а глобальная list перекрывает встроенный тип.
Правильный порядок
- 1Локальная область текущей функции
- 2Области охватывающих функций
- 3Глобальная область модуля
- 4Встроенные имена (builtins)
Разбор
Это правило LEGB: Local, Enclosing, Global, Built-in. Поэтому локальная переменная перекрывает глобальную, а глобальная list перекрывает встроенный тип.
Ответьте сами, а не прочитайте
В тренажёре вопрос попадёт в повторения и вернётся, когда начнёт забываться. Плюс билеты с зачётом: 20 вопросов, не больше 2 ошибок.
Термины по теме
Ещё по теме «Функции и области видимости»
- Что такое *args и **kwargs
- Перекрытие встроенных имён
- Как передаются аргументы в функцию Python
- Где хранятся переменные замыкания
- Вызов с *args и **kwargs: разбор сигнатуры
- Композиция функций
- Мемоизация через замыкание
- Повтор вызова с ограничением попыток