globals()

Функция globals() возвращает словарь, представляющий глобальное пространство имён текущего модуля. В нём хранятся все имена верхнего уровня: переменные, функции, классы, импортированные модули. Изменения этого словаря отражаются на самой программе.

Сигнатура

globals()

Параметры: нет.

Возвращает: словарь имён модуля.

Примеры

Просмотр имеющихся имён:

x = 10
y = "hello"
names = list(globals().keys())
print("x" in names, "y" in names)
True True

Создание переменной программно:

globals()["voltage"] = 5
print(voltage)
5

Обращение к функции по имени:

def greet():
    return "hello"

fn = globals()["greet"]
print(fn())
hello

Поиск всех функций модуля:

def f1(): pass
def f2(): pass
def f3(): pass

funcs = [n for n, v in globals().items() if callable(v) and n.startswith("f")]
print(sorted(funcs))
['f1', 'f2', 'f3']

Сравнение с локальной областью:

counter = 0

def show():
    local = 5
    print("counter" in globals(), "local" in globals())

show()
True False

Предупреждение

Изменение globals() напрямую — мощный, но опасный приём. Делает код менее предсказуемым; в большинстве случаев лучше явно передавать значения через аргументы.

См. также

Примечание

Описание основано на официальной документации Python (docs.python.org), распространяемой под лицензией PSF License v2. © Python Software Foundation.