Функция globals() в Python и примеры

Функция Python globals() не имеет аргументов. Она возвращает словарь текущего модуля (внутри функции или метода это модуль, в котором он определен, а не модуль, из которого он вызывается).

Функция Python globals()

Что такое globals() в Python?

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

Python хранит информацию о программе в таблицах символов. Существует два типа таблиц символов.

  1. Локальная таблица символов: в ней хранится информация, относящаяся к локальной области действия программы. Мы можем получить эти данные, используя функцию locals(). Локальная область может быть внутри функции, внутри класса и т. д.
  2. Глобальная таблица символов: в ней хранится информация, относящаяся к глобальной области действия программы. Мы можем получить эти данные с помощью функции globals(). Глобальная область видимости содержит все функции, переменные, которые не связаны ни с каким классом или функцией.

Давайте посмотрим, что возвращает функция globals().

См. следующий вывод.

Теперь давайте определим одну переменную с именем name и посмотрим результат.

Вывод:

Вы можете видеть, что в последней строке вывода появилась определенная переменная.

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

Давайте получим доступ к переменной name.

Вывод:

Изменение глобальной переменной с помощью global()

См. следующий код.

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

Доступ к возвращаемому словарю осуществляется с использованием ключа имени переменной и изменяется на Joe Keery.

Это снова отражается в глобальной таблице символов.

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

Здесь следует отметить, что переменная ‘u’ является частью глобального словаря, потому что ее область действия является глобальной. Принимая во внимание, что локальная переменная не является частью глобального словаря из-за того, что имеет локальную область действия.

Вывод:

Итак, функция Python globals() — это утилита, в основном используемая для отладки кода. Мы можем использовать его для определения переменных глобальной области видимости и функций, доступных программе.

Оцените статью

Автор статей и разработчик, делюсь знаниями.

Программирование на Python