Загружаем изображение…
Знаете, что Python умеет кешировать вычисляемое свойство объекта?
Частая проблема: есть тяжёлое вычисление внутри объекта, которое не должно выполняться повторно.
Обычно для этого заводят _cache, проверки на None и дополнительное состояние.
if self._data is None:
self._data = load()cached_property вычисляет значение один раз, а затем автоматически сохраняет результат прямо в объекте.
@cached_property
def profile(self):После первого обращения свойство начинает работать как обычный атрибут без повторного вызова функции.
user.profileЭто особенно полезно для ORM, API-клиентов, конфигов, парсинга и любых дорогих операций внутри моделей.
user.profile # второй вызов без вычисленияcached_property автоматически кеширует результат первого вычисления свойства и исключает повторное выполнение дорогостоящей логики при последующих обращениях к объекту.Python Ready | #совет
Просмотры: 277