__getattr__ в Python и зачем он нужен?__getattr__ — это магический метод, который вызывается, когда атрибут не найден обычным способом. Он позволяет управлять доступом к несуществующим атрибутам, создавать прокси-объекты, ленивую загрузку и динамические значения.➡️ Пример:
class LazyUser:
def __init__(self, name):
self.name = name
def __getattr__(self, attr):
return f'Атрибута "{attr}" нет, но мы что-нибудь придумаем'
user = LazyUser('Анна')
print(user.name) # Анна
print(user.email) # Атрибута "email" нет, но мы что-нибудь придумаем
🗣️ В этом примере, если атрибут не найден (например, email), вызывается __getattr__, который возвращает кастомный ответ. Это может быть полезно для отладки, логирования, создания API-обёрток и сериализации
🖥 Подробнее тут