Метод local () оновлює та повертає словник поточної таблиці локальних символів.
Таблиця символів - це структура даних, що підтримується компілятором, яка містить всю необхідну інформацію про програму.
Сюди входять імена змінних, методи, класи тощо.
В основному існує два види таблиць символів.
- Глобальна таблиця символів
- Місцева таблиця символів
У глобальній таблиці символів зберігається вся інформація, що стосується глобальної області застосування, і доступ до неї здійснюється на Python за допомогою методу globals ().
Глобальна область дії містить усі функції, змінні, які не пов'язані з будь-яким класом чи функцією.
Аналогічно, таблиця локальних символів зберігає всю інформацію, що стосується локальної області дії програми, і доступ до неї здійснюється в Python за допомогою locals()
методу.
Локальний обсяг може бути в межах функції, всередині класу тощо.
Рекомендована література: Простір імен та область застосування в Python
Синтаксис місцевих жителів ()
Синтаксис locals()
методу:
місцеві жителі ()
local () Параметри
locals()
метод не приймає жодних параметрів.
Повернене значення від місцевих жителів ()
locals()
метод оновлює та повертає словник, пов'язаний з поточною локальною таблицею символів.
Приклад 1: Як місцеві жителі () працюють у Python?
locals()
Вихідні дані
('In': ('', 'local ()'), 'Out': (), '_': '', '__': '', '___': '', '__builtin__':, ' __builtins__ ':,' __name__ ':' __main__ ',' _dh ': (' / home / repl '),' _i ':' ',' _i1 ':' local () ',' _ih ': (' ', 'local ()'), '_ii': '', '_iii': '', '_oh': (), '_sh':, 'exit':, 'get_ipython':>, 'quit':)
Примітка: globals()
і locals()
таблиця символів для глобального середовища однакова.
Приклад 2: Як місцеві жителі () працюють у локальній області?
def localsNotPresent(): return locals() def localsPresent(): present = True return locals() print('localsNotPresent:', localsNotPresent()) print('localsPresent:', localsPresent())
Вихідні дані
localNotPresent: () localPresent: ('present': True)
Приклад 3: Оновлення значень словника local ()
def localsPresent(): present = True print(present) locals()('present') = False; print(present) localsPresent()
Вихідні дані
Правда-правда
На відміну від globals()
словника, який відображає зміну фактичної глобальної таблиці, locals()
словник може не змінити інформацію всередині таблиці місцевих жителів.