Встречается на собеседованиях • сегодня
Какие знаешь варианты lazy loading
В Python есть несколько способов реализации lazy loading (ленивой загрузки):
- Декораторы
python
def lazy_property(fn):
attr_name = '_lazy_' + fn.__name__
@property
def _lazy_property(self):
if not hasattr(self, attr_name):
setattr(self, attr_name, fn(self))
return getattr(self, attr_name)
return _lazy_property- Использование
__getattr__
python
class LazyLoader:
def __init__(self, loader_func):
self.loader_func = loader_func
self._loaded = None
def __getattr__(self, name):
if self._loaded is None:
self._loaded = self.loader_func()
return getattr(self._loaded, name)- Генераторы
python
def lazy_range(n):
i = 0
while i < n:
yield i
i += 1- Библиотеки
django.utils.functional.cached_propertywerkzeug.utils.cached_property
Ленивая загрузка полезна для ресурсоемких операций, когда объект может не потребоваться.

Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
офферы быстрее!
Попробовать бесплатно
Следующий вопрос
Это единственный вопрос по вашему фильтру
как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы