Встречается на собеседованиях • сегодня
Что общего у генератора и итератора в Python
Генераторы и итераторы в Python оба позволяют работать с последовательностями элементов, но генератор — это частный случай итератора.
Общие черты:
- Оба реализуют протокол итератора (методы
__iter__()и__next__()). - Позволяют ленивую (по требованию) обработку данных, экономя память.
- Одноразовые — после исчерпания элементов нельзя переиспользовать.
Пример:
python
# Итератор
class MyIterator:
def __init__(self, max_num):
self.max_num = max_num
self.current = 0
def __iter__(self):
return self
def __next__(self):
if self.current < self.max_num:
self.current += 1
return self.current
raise StopIteration
# Генератор (упрощенная версия)
def my_generator(max_num):
current = 0
while current < max_num:
current += 1
yield current
# Оба можно использовать в for-цикле
for num in MyIterator(3):
print(num) # 1, 2, 3
for num in my_generator(3):
print(num) # 1, 2, 3Генераторы проще в написании (через yield), а итераторы требуют явного описания класса.

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