Когда ты вызываешь переменную, интерпретатор не просто берёт первую попавшуюся — он ищет её по строгому порядку областей видимости LEGB:
▶ Local (локальная) — переменные внутри текущей функции
▶ Enclosing (вложенная) — область видимости внешней функции, если функция вложена
▶ Global (глобальная) — переменные, определённые на уровне модуля
▶ Built-in (встроенная) — всё, что встроено в сам Python: len, print, range, list, dict и т.д.
Последняя срабатывает, если имя искомой переменной совпадает с именем встроенной функции, и её не нашли ни в локальной, ни во вложенной, ни в глобальной области.
На фото показан пример того, как работает правило LEGB: Python ищет
x, начиная с самого нижнего уровня, и поднимается вверх, пока не найдёт подходящее значение.❤ — если было полезно
tags: #обучение
➡ Python Developer | Чат
