Функция locals()
в Python возвращает словарь, представляющий текущую локальную символическую таблицу. Символическая таблица содержит информацию о всех локальных переменных в текущем контексте (функции или модуля). Эта функция полезна для отладки и анализа кода.
Содержание
- Синтаксис
- Параметры
- Возвращаемое значение
- Примеры использования
- Пример 1: Получение локальных переменных в глобальной области
- Пример 2: Получение локальных переменных внутри функции
- Пример 3: Использование locals() в глобальной области видимости
- Примеры практического применения
- Пример 4: Отладка функций
- Пример 5: Динамическое создание переменных
- Важные замечания
Синтаксис
locals()
Параметры
Функция locals()
не принимает параметров.
Возвращаемое значение
Функция возвращает словарь, содержащий информацию о всех локальных переменных в текущей области видимости.
Примеры использования
Пример 1: Получение локальных переменных в глобальной области
a = 10
b = 20
print(locals()) # Вывод: {'a': 10, 'b': 20, ...}
Пример 2: Получение локальных переменных внутри функции
def my_function():
x = 5
y = 10
print(locals())
my_function() # Вывод: {'x': 5, 'y': 10}
Пример 3: Использование locals()
в глобальной области видимости
global_var = "Hello, World!"
def check_locals():
local_var = "Local Variable"
print(locals())
check_locals()
print(locals()) # Вывод: {'global_var': 'Hello, World!', ...}
Примеры практического применения
Пример 4: Отладка функций
def debug_function():
a = 1
b = 2
c = a + b
print("Debugging locals:", locals())
return c
debug_function()
# Вывод: Debugging locals: {'a': 1, 'b': 2, 'c': 3}
Пример 5: Динамическое создание переменных
def create_variables():
for i in range(3):
locals()[f'var_{i}'] = i
print(locals())
create_variables()
# Вывод: {'i': 2, 'var_0': 0, 'var_1': 1, 'var_2': 2}
Важные замечания
- Только для чтения: Словарь, возвращаемый
locals()
, предназначен только для чтения. Изменение его значений не будет отражено на реальных локальных переменных. - Отличие от
globals()
: Функцияglobals()
возвращает символическую таблицу глобальных переменных, тогда какlocals()
возвращает локальные переменные. - Использование в различных контекстах: В глобальной области видимости
locals()
иglobals()
возвращают один и тот же словарь. Однако внутри функцийlocals()
возвращает только локальные переменные.