Встречается на 1% собеседований по Python
Какие знаешь варианты 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
интервью вопросы и ответы