Как объяснить генератор yield?
Что хотят услышать интервьюеры:
Ответ для уровня Junior+: объяснение должно включать не только что такое генератор yield, но и когда его использовать, когда не использовать и как проверить корректность.
Ответ:
Ситуация: нужно переиспользовать поведение вокруг вызова функции, работы с ресурсом или ленивой обработки данных. В такой ситуации нужно найти источник проблемы, измерить эффект и выбрать минимально достаточное решение.
Сравнение: важно отличать генератор yield от return списка, потому что у них разные цели и trade-off.
Пример:
def deco(fn):<br>
def wrapper(*args, **kwargs):<br>
return fn(*args, **kwargs)<br>
return wrapper Хороший ответ: звучит через практику: ограничение, пример, типичная ошибка, тест или production-последствие.