English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
Метод locals() обновляет и возвращает словарь текущей локальной символической таблицы.
Символьная таблица - это структура данных, поддерживаемая компилятором, которая содержит все необходимые информации о программе.
Это включает имена переменных, методы, классы и т.д.
Символьные таблицы主要有 двумя видами.
Глобальная символическая таблица
Локальная символическая таблица
ОднаGlobal Символьная таблица хранит все информации, связанные с глобальным диапазоном программы, и позволяет к ним обращаться с помощью Python.globals()Метод.
Глобальная область видимости включает все функции и переменные, не связанные с любыми классами или функциями.
Таким же образом,Local Символьная таблица хранит все informacje, связанные с локальным диапазоном программы, и позволяет к ним обращаться с помощью метода locals() в Python.
Локальная область видимости может быть в функции, классе и т.д.
Рекомендуется к прочтению: Наместничество и область видимости в Python
Синтаксис метода locals():
locals()
Метод locals() не принимает никаких параметров.
Метод locals() обновляет и возвращает словарь, связанный с текущим локальным символическим таблицей.
locals()
При выполнении этого программы, вывод будет:
___ __builtin__ __builtins__ __name__ _dh': ['/home/repl'], _i': '', _i1': 'locals()', _ih': ['', 'locals()'], _ii': '', _iii': '', _oh': {}, _sh':, 'exit':, 'get_ipython':>, 'quit':}
Примечание:Символьные таблицы globals() и locals() глобальной среды идентичны.
def localsNotPresent(): return locals() def localsPresent(): present = True return locals() print('localsNotPresent:', localsNotPresent()) print('localsPresent:', localsPresent())
При выполнении этого программы, вывод будет:
localsNotPresent: {} localsPresent: {'present': True}
def localsPresent(): present = True print(present) locals()['present'] = False; print(present) localsPresent()
При выполнении этого программы, вывод будет:
True True
В отличие от словаря globals() (который отражает изменения в фактической глобальной таблице), словарь locals() может не изменять информацию в таблице locals().