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

Ялвяется ли Генератор частным случаем Итератор

Да, генератор является частным случаем итератора. Генератор автоматически реализует протокол итератора, предоставляя методы __iter__() и __next__(). Основное отличие — генераторы создаются с помощью функций с yield или генераторных выражений, а итераторы требуют явной реализации этих методов.

Пример генератора:

python
def count_up_to(n):
    i = 1
    while i <= n:
        yield i
        i += 1

gen = count_up_to(3)  # генератор
print(next(gen))  # 1
print(next(gen))  # 2

Пример итератора:

python
class CountUpTo:
    def __init__(self, n):
        self.n = n
        self.i = 1

    def __iter__(self):
        return self

    def __next__(self):
        if self.i > self.n:
            raise StopIteration
        i = self.i
        self.i += 1
        return i

iterator = CountUpTo(3)  # итератор
print(next(iterator))  # 1
Sophi
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
Попробовать бесплатноArrow

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

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

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