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

# getattr()

`getattr()` - это встроенная функция в Python, которая возвращает значение атрибута объекта.

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

* Получение значения атрибута объекта по его имени в виде строки.
* Возможность получения значения атрибута динамически при времени выполнения.

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

* Возвращает значение атрибута объекта.

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

* Принимает три аргумента: `object`, `name`, `default`.
* `object` - объект, у которого нужно получить атрибут.
* `name` - строка, содержащая имя атрибута.
* `default` (необязательный) - значение, которое будет возвращено, если атрибут не найден.

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

1. Получение атрибута объекта
2. Использование необязательного аргумента `default`
3. Динамическое получение атрибутов

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

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

person = Person("Alice", 25)
name = getattr(person, "name")
print(name)  # Вывод: Alice
```

{% endtab %}

{% tab title="2." %}

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

person = Person("Bob", 30)
occupation = getattr(person, "occupation", "Unknown")
print(occupation)  # Вывод: Unknown
```

{% endtab %}

{% tab title="3." %}

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

person = Person("Charlie", 35)
attribute_name = "age"
age = getattr(person, attribute_name)
print(age)  # Вывод: 35
```

{% endtab %}
{% endtabs %}

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

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

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