Функція locals() повертає словник з усіма локальними змінними та символами поточної програми. Наприклад:
|
1 |
print(locals()) |
Результат:
{'__name__': '__main__', '__doc__': None, '__package__': None, '__loader__': <_frozen_importlib_external.SourceFileLoader object at 0x7f88c1761dc0>, '__spec__': None, '__annotations__': {},'__builtins__': <module 'builtins' (built-in)>, '__file__': 'main.py', '__cached__': None}
Синтаксис функції Python
|
1 |
locals() |
Параметри функції Python
Функція locals() не приймає жодних параметрів.
Значення, яке повертає функція locals()
Функція locals() повертає словник поточної таблиці локальних символів.
Приклад №1: Функція locals() в Python
|
1 2 3 4 |
class local: l = 50 # Локальні об'єкти всередині класу print('\nlocals() value inside class\n', locals()) |
Результат:
locals() value inside class
{'__module__': '__main__', '__qualname__': 'local', 'l': 50}
Компілятор Python підтримує таблицю символів, яка містить необхідну інформацію про написану програму. У Python існує два типи таблиць символів — локальна та глобальна.
Локальна таблиця символів зберігає всю інформацію, що стосується локальної області видимості програми (всередині класу або функції). Ми можемо отримати доступ до таблиці символів за допомогою функції locals(). Зазвичай програмісти в Python використовують функцію locals(), щоб обмежити будь-яку змінну і функцію всередині області видимості функції або класу.
У даному прикладі ми маємо клас з ім’ям local і ми використали функцію locals(), щоб повернути змінні та функції цього класу.
Приклад №2: Функція locals() для зміни значень
|
1 2 3 4 5 6 7 |
def localsPresent(): present = True print(present) locals()['present'] = False print(present) localsPresent() |
Результат:
True
True
Тут ми намагаємося змінити значення змінної present всередині функції localsPresent() за допомогою функції locals().
На відміну від функції globals(), функція locals() не може змінювати дані локальної таблиці символів. Ми можемо лише отримати доступ до локальної таблиці символів у Python за допомогою цієї функції. Отже, коли ми намагаємося змінити значення на False, змінна present залишається незмінною:
|
1 |
locals()['present'] = False |
