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.