Функція locals() в Python

 1142

Функція 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

Параметри функції Python

Функція locals() не приймає жодних параметрів.

Значення, яке повертає функція locals()

Функція locals() повертає словник поточної таблиці локальних символів.

Приклад №1: Функція locals() в Python

Результат:

locals() value inside class
 {'__module__': '__main__', '__qualname__': 'local', 'l': 50}

Компілятор Python підтримує таблицю символів, яка містить необхідну інформацію про написану програму. У Python існує два типи таблиць символів — локальна та глобальна.

Локальна таблиця символів зберігає всю інформацію, що стосується локальної області видимості програми (всередині класу або функції). Ми можемо отримати доступ до таблиці символів за допомогою функції locals(). Зазвичай програмісти в Python використовують функцію locals(), щоб обмежити будь-яку змінну і функцію всередині області видимості функції або класу.

У даному прикладі ми маємо клас з ім’ям local і ми використали функцію locals(), щоб повернути змінні та функції цього класу.

Приклад №2: Функція locals() для зміни значень

Результат:

True
True

Тут ми намагаємося змінити значення змінної present всередині функції localsPresent() за допомогою функції locals().

На відміну від функції globals(), функція locals() не може змінювати дані локальної таблиці символів. Ми можемо лише отримати доступ до локальної таблиці символів у Python за допомогою цієї функції. Отже, коли ми намагаємося змінити значення на False, змінна present залишається незмінною:

Оцінити статтю:

1 Зірка2 Зірки3 Зірки4 Зірки5 Зірок (1 оцінок, середня: 5,00 з 5)
Завантаження...

Залишити відповідь

Ваш E-mail не буде опублікований. Обов'язкові поля відмічені *