Back to questions
Junior — Middle
62
Как осуществляется поиск переменной в различных областях видимости в Python?
Answer from AI
sobes.tech AI
В Python поиск переменной происходит по правилу LEGB, которое обозначает области видимости в следующем порядке:
- L (Local) — локальная область функции или метода.
- E (Enclosing) — область видимости внешних (вложенных) функций.
- G (Global) — глобальная область текущего модуля.
- B (Built-in) — встроенные имена Python.
Когда интерпретатор встречает имя переменной, он ищет её сначала в локальной области, если не находит — переходит к внешним функциям, затем к глобальной области и, наконец, к встроенным именам. Если переменная не найдена нигде, возникает ошибка NameError.
Пример:
x = 'global'
def outer():
x = 'enclosing'
def inner():
x = 'local'
print(x) # Выведет 'local'
inner()
print(x) # Выведет 'enclosing'
outer()
print(x) # Выведет 'global'