> 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/vars.md).

# vars()

Функция `vars()` в Python используется для возврата атрибутов объекта в виде словаря.

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

* Получить словарь атрибутов объекта.
* Вернуть `__dict__` атрибут объекта.

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

* Возвращает словарь, содержащий атрибуты объекта.
* Если аргумент не предоставлен, возвращает словарь, эквивалентный `locals()`.

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

* Может быть вызвана без аргументов или с одним аргументом `object`.
* Если объект имеет метод `__dict__`, `vars()` возвращает его результат.
* Для модулей, классов и экземпляров классов возвращает их словарь атрибутов.

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

1. ***Получение атрибутов экземпляра класса***
2. ***Использование vars() без аргументов***
3. ***Получение атрибутов модуля***

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

```python
class Person:
    def __init__(self, name, age):
        self.name = name
        self.age = age

person = Person("Alice", 30)
print(vars(person))  # Выведет: {'name': 'Alice', 'age': 30}
```

{% endtab %}

{% tab title="2." %}

```python
x = 10
y = 20
print(vars())  # Выведет словарь локальных переменных, включая 'x' и 'y'
```

{% endtab %}

{% tab title="3." %}

```python
import math
print(vars(math))  # Выведет словарь атрибутов модуля math
```

{% endtab %}
{% endtabs %}

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

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

Функция `vars()` является мощным инструментом для исследования и манипулирования объектами в Python. Она особенно полезна при отладке и при работе с динамическими атрибутами объектов.

Важно отметить несколько моментов:

1. Не все объекты имеют атрибут `__dict__`. Попытка вызвать `vars()` для таких объектов (например, для встроенных типов как `int` или `str`) приведет к исключению `TypeError`.
2. Изменение словаря, возвращенного `vars()`, может напрямую влиять на атрибуты объекта.
3. При использовании без аргументов `vars()` эквивалентна вызову `locals()`, что может быть полезно для получения всех локальных переменных в текущей области видимости.

`vars()` часто используется в сочетании с другими встроенными функциями Python, такими как `dir()`, для более глубокого анализа объектов и их атрибутов.
