> For the complete documentation index, see [llms.txt](https://bemind.gitbook.io/neural/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://bemind.gitbook.io/neural/python/vstroennye-funkcii-python/globals.md).

# globals()

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

**Назначение**:

* Получение доступа к глобальным переменным и функциям в текущем модуле.
* Модификация глобальных переменных и функций.

**Возврат**:

* Возвращает словарь, содержащий все глобальные переменные и функции в текущем модуле.

**Описание**:

* Не принимает аргументов.
* Возвращаемый словарь является изменяемым, поэтому его можно использовать для добавления, удаления или изменения глобальных переменных и функций.

**Примеры**:

1. *<mark style="color:green;">**Получение**</mark>* глобальных переменных
2. *<mark style="color:purple;">**Изменение**</mark>* глобальной переменной
3. *<mark style="color:orange;">**Добавление**</mark>* новой глобальной переменной

{% tabs %}
{% tab title="1." %}

```python
x = 10
y = 20

def func():
    global_vars = globals()
    print(global_vars['x'])  # Вывод: 10
    print(global_vars['y'])  # Вывод: 20

func()
```

{% endtab %}

{% tab title="2." %}

```python
x = 10

def func():
    global_vars = globals()
    global_vars['x'] = 20
    print(x)  # Вывод: 20

func()
```

{% endtab %}

{% tab title="3." %}

```python
def func():
    global_vars = globals()
    global_vars['new_var'] = 'Hello, World!'
    print(global_vars['new_var'])  # Вывод: Hello, World!

func()
print(new_var)  # Вывод: Hello, World!
```

{% endtab %}
{% endtabs %}

**Использование**:

* В случаях, когда необходимо получить доступ или изменить глобальные переменные и функции из внутренних областей видимости (функций, классов и т.д.).
* При отладке и анализе кода, когда требуется проверить состояние глобальных переменных.
* В метапрограммировании, когда требуется динамически манипулировать глобальными объектами.
* В некоторых фреймворках и библиотеках, где используется динамическое создание и управление глобальными объектами.

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