Skip to content

Latest commit

 

History

History
53 lines (38 loc) · 4.16 KB

README_globals.md

File metadata and controls

53 lines (38 loc) · 4.16 KB
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.

Однако следует отметить, что такой подход не является хорошей практикой и может вызвать проблемы с читаемостью и поддержкой кода. Рекомендуется использовать импорт для доступа к переменным из других модулей, так как это делает код более читаемым и предсказуемым.