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.