все Python 3Встроенные функциипонятие
locals
пространства имён
Возвращает словарь текущего локального пространства имён. В модуле это тот же объект, что globals(); внутри функции — снимок, не ссылка.
Синтаксис
locals()
Внутри функции это снимок: записать что-то в полученный словарь и ждать появления новой локальной переменной бесполезно — обратной связи с кадром нет (в Python 3.13 это закреплено PEP 667, раньше поведение зависело от реализации). На уровне модуля и в теле класса locals() отдаёт настоящий словарь пространства имён, и правки в нём как раз видны — отсюда путаница. В функции попадают только те имена, которым уже что-то присвоено к моменту вызова.
Примеры
def f():
x = 10; y = 20
return locals()
print(f()) # → {'x':10,'y':20}
def g(a, b):
c = a+b
print('c' in locals()) # → True
return locals()
print(g(1,2)) # → {'a':1,'b':2,'c':3}
print(type(locals())) # → <class 'dict'>
См. также
Открыть в полном глоссарииdocs.python.orgСообщить о неточности