Можешь перечислить основные пространства имен в Python и объяснить их назначение?
Answer from AI
sobes.tech AI
В Python существуют три основных пространства имен, которые определяют область видимости объектов:
-
Локальное пространство имен (Local Namespace) — содержит имена, определённые внутри текущей функции или метода. Эти имена доступны только в пределах этой функции.
-
Область видимости вложенных функций (Enclosing Namespace) — это пространство имен внешних функций, если функция вложена в другую функцию. Позволяет вложенной функции обращаться к переменным внешней функции.
-
Глобальное пространство имен (Global Namespace) — содержит имена, определённые на уровне модуля (файла). Доступно во всём модуле.
-
Встроенное пространство имен (Built-in Namespace) — содержит имена встроенных функций и исключений Python, например,
print(),len(),Exception.
При поиске имени Python проверяет пространства имен в порядке LEGB (Local, Enclosing, Global, Built-in).
Пример:
x = 'глобальный'
def outer():
x = 'внешний'
def inner():
x = 'локальный'
print(x) # Выведет 'локальный'
inner()
print(x) # Выведет 'внешний'
outer()
print(x) # Выведет 'глобальный'