Назад к вопросам
Middle
3
Что такое итератор и генератор, какие методы они должны реализовывать и в чем отличие?
Компании, где спрашивали
fabriqeue
Ответ от нейросети
sobes.tech AI
Итератор — это объект, который позволяет последовательно обходить элементы коллекции. В Python итератор должен реализовывать методы:
__iter__()— возвращает сам итератор;__next__()— возвращает следующий элемент или вызываетStopIteration, если элементов больше нет.
Генератор — это специальный вид итератора, который создаётся с помощью функций с ключевым словом yield или генераторных выражений. Генератор автоматически реализует методы итератора.
Отличия:
- Итератор может быть реализован вручную, а генератор создаётся проще с помощью
yield. - Генераторы ленивы и позволяют экономить память, так как элементы создаются по мере необходимости.
Пример генератора:
def count_up_to(n):
count = 1
while count <= n:
yield count
count += 1
for number in count_up_to(5):
print(number)