locals()

Функция locals() возвращает словарь, отражающий текущую таблицу локальных имён. На уровне модуля результат совпадает с globals(); внутри функции — содержит её локальные переменные на момент вызова.

Сигнатура

locals()

Параметры: нет.

Возвращает: dict с парами «имя — значение». Изменение этого словаря внутри функции, как правило, не влияет на реальные переменные.

Примеры

Внутри функции:

def show():
    x = 10
    name = "Айдос"
    print(locals())

show()
{'x': 10, 'name': 'Айдос'}

Сравнение с глобальной областью:

speed = 100
def info():
    angle = 45
    print("local:", list(locals()))

info()
print("global содержит speed:", "speed" in globals())
local: ['angle']
global содержит speed: True

Форматирование строки по локальным переменным:

def greet():
    name = "Алия"
    age = 19
    print("{name}, тебе {age}".format(**locals()))

greet()
Алия, тебе 19

Отладка — посмотреть состояние перед ошибкой:

def calc(a, b):
    total = a + b
    ratio = a / b if b else 0
    print("snapshot:", locals())
    return total

calc(8, 2)
snapshot: {'a': 8, 'b': 2, 'total': 10, 'ratio': 4.0}

Параметры функции тоже видны в locals():

def setup(pin, mode):
    print(locals())

setup(13, "OUTPUT")
{'pin': 13, 'mode': 'OUTPUT'}

См. также

Примечание

Описание основано на официальной документации Python (docs.python.org), распространяемой под лицензией PSF License v2. © Python Software Foundation.