Встречается на 2% собеседований по Python

Почему нельзя сделать генератор с помощью return в Python

Генераторы в Python используют yield вместо return, потому что yield сохраняет состояние функции между вызовами, позволяя ей возобновлять выполнение с того же места. return же завершает функцию полностью, освобождая все локальные переменные и возвращая управление вызывающей стороне.

Пример с yield:

python
def my_generator():
    yield 1
    yield 2
    yield 3

gen = my_generator()
print(next(gen))  # 1
print(next(gen))  # 2

Если бы использовался return, функция завершилась бы после первого вызова, и последующие значения были бы недоступны. Генераторы работают по принципу ленивых вычислений, экономя память.

Следующий вопрос

Это единственный вопрос по вашему фильтру

как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы