Встречается на собеседованиях • сегодня

Как в Python происходит поиск переменной по областям видимости

Поиск переменной в Python происходит по правилу LEGB (Local → Enclosed → Global → Built-in):

  1. Local - сначала ищет в локальной области видимости (внутри функции)
  2. Enclosed - если переменная не найдена, проверяет объемлющие функции (для вложенных функций)
  3. Global - затем ищет в глобальной области видимости модуля
  4. Built-in - в последнюю очередь проверяет встроенные имена (например, print, len)

Пример:

python
x = 'global'

def outer():
    x = 'enclosed'
    def inner():
        x = 'local'
        print(x)  # local
    inner()
    print(x)  # enclosed

outer()
print(x)  # global

Важно: если переменная изменяется внутри функции без объявления global или nonlocal, Python создаст новую локальную переменную.

Sophi
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
Попробовать бесплатноArrow

Следующий вопрос

Это единственный вопрос по вашему фильтру

как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы