Встречается на собеседованиях • сегодня

Почему нельзя сделать генератор с помощью 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, функция завершилась бы после первого вызова, и последующие значения были бы недоступны. Генераторы работают по принципу ленивых вычислений, экономя память.

Sophi
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
Попробовать бесплатноArrow

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

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

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