English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

Основной курс Python

Управление потоком в Python

Функции Python

Типы данных Python

Файловые операции в Python

Объекты и классы в Python

Даты и время в Python

Продвинутые знания Python

Руководство по Python

Метод locals() в Python: использование и примеры

Внутренние функции Python

Метод locals() обновляет и возвращает словарь текущей локальной символической таблицы.

Символьная таблица - это структура данных, поддерживаемая компилятором, которая содержит все необходимые информации о программе.

Это включает имена переменных, методы, классы и т.д.

Символьные таблицы主要有 двумя видами.

  1. Глобальная символическая таблица

  2. Локальная символическая таблица

ОднаGlobal Символьная таблица хранит все информации, связанные с глобальным диапазоном программы, и позволяет к ним обращаться с помощью Python.globals()Метод.

Глобальная область видимости включает все функции и переменные, не связанные с любыми классами или функциями.

Таким же образом,Local Символьная таблица хранит все informacje, связанные с локальным диапазоном программы, и позволяет к ним обращаться с помощью метода locals() в Python.

Локальная область видимости может быть в функции, классе и т.д. 

Рекомендуется к прочтению: Наместничество и область видимости в Python

Синтаксис locals():

Синтаксис метода locals():

locals()

Параметры locals()

Метод locals() не принимает никаких параметров.

Возврат locals()

Метод locals() обновляет и возвращает словарь, связанный с текущим локальным символическим таблицей.

Пример 1: Как locals() работает в Python?

locals()

При выполнении этого программы, вывод будет:

 
 
 
 ___
 __builtin__
 __builtins__
 __name__
 _dh': ['/home/repl'],
 _i': '',
 _i1': 'locals()',
 _ih': ['', 'locals()'],
 _ii': '',
 _iii': '',
 _oh': {},
 _sh':,
 'exit':,
 'get_ipython':>,
 'quit':}

Примечание:Символьные таблицы globals() и locals() глобальной среды идентичны.

Пример 2: Как locals() работает в локальном диапазоне?

def localsNotPresent():
    return locals()
def localsPresent():
    present = True
    return locals()
print('localsNotPresent:', localsNotPresent())
print('localsPresent:', localsPresent())

При выполнении этого программы, вывод будет:

localsNotPresent: {}
localsPresent: {'present': True}

Пример 3: Обновление значения словаря locals()

def localsPresent():
    present = True
    print(present)
    locals()['present'] = False;
    print(present)
localsPresent()

При выполнении этого программы, вывод будет:

True
True

В отличие от словаря globals() (который отражает изменения в фактической глобальной таблице), словарь locals() может не изменять информацию в таблице locals().

Внутренние функции Python