Встречается на собеседованиях • сегодня
В чем разница между генератором, итератором и корутиной
Генератор — это функция с yield, которая при вызове возвращает итератор. Он лениво генерирует значения по одному и сохраняет состояние между вызовами.
Итератор — объект с методами __iter__() и __next__(), который возвращает элементы последовательности по одному. Все генераторы — итераторы, но не наоборот.
Корутина — расширенный генератор, который может принимать значения через .send(value) и используется для кооперативной многозадачности.
Пример:
python
# Генератор
def gen():
yield 1
yield 2
# Итератор
class MyIter:
def __iter__(self):
return self
def __next__(self):
return 1 # или raise StopIteration
# Корутина
def coro():
val = yield
print(f"Received: {val}")Генераторы и корутины используют yield, но корутины — двусторонние (прием/отправка данных).

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