Документация по Python. Теоретические материалы, и практические задачи

Python globals

Метод Python globals — возвращает текущую глобальную таблицу символов в виде словаря. В начале разберемся с тем, что из себя представляет глобальная таблица символов?

Таблица символов — это данные поддерживаемые компилятором, в нем содержится вся необходимая информация о программе. В эти данные входят имена переменных, методов, классов и.т.д.

Различают два вида таблиц символов:

  • Локальные символы
  • Глобальные символы

В локальной таблице содержится вся информация, которая относится непосредственно к локальной области работы программы.  Доступ осуществляется с помощью метода locals().

Аналогично локальной, в глобальной таблице находится вся информация, которая относится к глобальной части программы, а доступ осуществляется с помощью метода globals().  Как вы возможно уже догадались, в глобальной области хранятся все функции и переменные, которые никак не связаны ни с какими либо классами и функциями.

Параметры метода globals()

Метод globals() не принимает никаких значений, а возвращает лишь словарь из таблицы символов.

Как работает метод globals()?

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

                    
{'In': ['', 'globals()'],
 'Out': {},
 '_': '',
 '__': '',
 '___': '',
 '__builtin__': <module 'builtins' (built-in)>,
 '__builtins__': <module 'builtins' (built-in)>,
 '__name__': '__main__',
 '_dh': ['/home/repl'],
 '_i': '',
 '_i1': 'globals()',
 '_ih': ['', 'globals()'],}

Результатом вызова, будет являться словарь, в котором отражаются все глобальные переменные и функции использующиеся в данной программе.

Пример 2. Как изменить глобальную переменную?

                    
age = 23

globals()['age'] = 25
print('The age is:', age)

Как вы уже знаете, метод globals() возвращает таблицу в виде словаря. Что бы изменить значение глобальной переменной, в данном случае age, мы вызываем метод global() с ключом age. Таким образом, мы можем менять значение любых глобальных переменных или функций.

Оставьте комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *