Sobes.tech
Back to questions
Junior — Middle
55

Какой набор переменных и идентификаторов доступен в текущей области видимости в Python?

Answer from AI

sobes.tech AI

В Python область видимости определяет, какие переменные и идентификаторы доступны в текущем контексте выполнения. Основные области видимости и наборы идентификаторов:

  • Локальная область (Local): переменные, определённые внутри функции или метода. Доступны только внутри этой функции.
  • Область вложенных функций (Enclosing): переменные из внешних функций, если используется вложенность функций.
  • Глобальная область (Global): переменные, определённые на уровне модуля (файла). Доступны во всём модуле.
  • Встроенная область (Built-in): имена встроенных функций и исключений Python, например print, len.

При обращении к идентификатору Python ищет его в порядке LEGB (Local, Enclosing, Global, Built-in). Например:

x = 'глобальная'

def outer():
    x = 'внешняя'
    def inner():
        x = 'локальная'
        print(x)  # Выведет 'локальная'
    inner()
    print(x)      # Выведет 'внешняя'

outer()
print(x)          # Выведет 'глобальная'

Таким образом, в текущей области видимости доступны переменные, определённые локально, а также те, что доступны из внешних областей по правилу LEGB.