Назад к вопросам
Junior — Middle
77
Каким образом в Python реализовано хранение переменных и их области видимости?
Компании, где спрашивали
Yappy
Ответ от нейросети
sobes.tech AI
В Python переменные хранятся в пространствах имён (namespaces), которые представляют собой словари, сопоставляющие имена с объектами. Области видимости определяются правилами LEGB:
- Local (локальная) — имена внутри текущей функции или метода.
- Enclosing (вложенная) — имена во внешних, но не глобальных функциях (замыкания).
- Global (глобальная) — имена на уровне модуля.
- Built-in (встроенная) — имена встроенных функций и исключений.
При обращении к переменной Python ищет её последовательно в этих областях. Локальные переменные хранятся в локальном пространстве имён функции, глобальные — в пространстве модуля.
Пример:
x = 10 # глобальная переменная
def func():
x = 5 # локальная переменная
print(x) # выведет 5
func()
print(x) # выведет 10
Для изменения глобальной переменной внутри функции используется ключевое слово global.