English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
Метод globals() возвращает все глобальные переменные в当前位置 в виде словаря.
Символьные таблицы - это данные структуры, поддерживаемые компилятором, которые содержат все необходимые данные о программе.
Это включает имена переменных, методы, классы и т.д.
Символьные таблицы主要有 двумя видами.
Локальная символическая таблица
Глобальная символическая таблица
Локальный(Local)Символьная таблица хранит все информацию, связанную с местным диапазоном программы, и может быть использована в Pythonlocals()метод доступа.
локальная область действия может быть в функции, классе и т.д.
Таким же образом,Глобальный(Global) Символьная таблица хранит все информацию, связанную с глобальным диапазоном программы, и доступна в Python с помощью метода globals().
Глобальная область действия включает все функции и переменные, не связанные с любыми классами или функциями.
Рекомендованная литература: Намерение и область действия в Python
Словарь globals() является словарем текущего модуля (внутри функции это модуль, который его определяет, а не модуль, который его вызывает).
Синтаксис метода globals():
globals()
Метод globals() не принимает هیچ параметров.
Метод globals() возвращает словарь глобальных переменных.
globals()
При выполнении программы вывод будет следующим:
{'In': ['', 'globals()'], 'Out': {}, '_': '', '__': '', '___': '', '__builtin__': <модуль 'builtins' (внутренний)>, '__builtins__': <модуль 'builtins' (внутренний)>, '__name__': '__main__', '_dh': ['/home/repl'], '_i': '', '_i1': 'globals()', '_ih': ['', 'globals()'], '_ii': '', '_iii': '', '_oh': {}, '_sh': <module 'IPython.core.shadowns' from '/usr/local/lib/python3.5/dist-packages/IPython/core/shadowns.py'> 'exit': <IPython.core.autocall.ExitAutocall at 0x7fbc60ca6c50>, 'get_ipython': <bound method InteractiveShell.get_ipython of <IPython.core.interactiveshell.InteractiveShell object at 0x7fbc6478ee48>> 'quit': <IPython.core.autocall.ExitAutocall at 0x7fbc60ca6c50>}
Вывод показывает все глобальные переменные и другие символы текущей программы.
age = 23 globals()['age'] = 25 print('Возраст:', age)
При выполнении программы вывод будет следующим:
Возраст: 25
Здесь, так как глобальный символический таблица также хранит все глобальные переменные, то есть в данном примере age, можно использовать функцию globals() для изменения значения age.
Доступ к возвращенному словарю по ключу переменной age и его изменение до 25.
Это снова отразится на глобальном символическом таблице.