print(globals())
вернет словарь для глоб переменных {имя:значение}
Для получения полного списка переменных, определенных в модуле Python, вы можете воспользоваться функцией globals() или locals(). Эти функции возвращают словарь, содержащий все переменные в текущей глобальной области видимости (globals()) или в текущей локальной области видимости (locals()). В модуле верхнего уровня, они возвращают одинаковый результат, но в функциях или методах locals() может отличаться от globals().
Вот примеры использования:
# Получение списка глобальных переменных в модуле
global_vars = globals()
print(global_vars)
# Получение списка локальных переменных (текущей функции или блока кода)
def my_function():
local_vars = locals()
print(local_vars)
my_function()
Помните, что эти функции возвращают словари, где ключами являются имена переменных, а значениями - их значения. Однако они также могут содержать и другие объекты, такие как функции и классы, определенные в модуле.
Обратите внимание, что получение полного списка переменных может быть полезным для отладки или анализа кода, но в обычном коде это редко используется. Вместо этого обычно используются конкретные области видимости, чтобы управлять переменными более точечно.
В Python можно получить доступ к глобальным переменным другого модуля, не импортируя его, используя встроенную функцию globals() в сочетании с функцией getattr(). Однако это требует некоторой осторожности и может быть нежелательным, так как нарушает инкапсуляцию и может вызвать неожиданные побочные эффекты.
Вот пример того, как это можно сделать:
# Модуль module_to_access.py
module_variable = "Hello from module_to_access"
# Скрипт, который получает доступ к переменной из другого модуля
def access_variable_from_another_module():
module_name = "module_to_access"
module_globals = globals()
if module_name in module_globals:
variable_value = module_globals[module_name].module_variable
print(f"Accessed variable value: {variable_value}")
else:
print(f"Module {module_name} not found in globals")
access_variable_from_another_module()
В этом примере мы определили модуль module_to_access.py, содержащий глобальную переменную module_variable. Затем в другом скрипте, мы используем globals(), чтобы получить доступ к глобальным переменным модуля module_to_access.
Однако следует отметить, что такой подход не является хорошей практикой и может вызвать проблемы с читаемостью и поддержкой кода. Рекомендуется использовать импорт для доступа к переменным из других модулей, так как это делает код более читаемым и предсказуемым.