# 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.
