Sobes.tech
Middle
29

Was ist ein Iterator und ein Generator, welche Methoden müssen sie implementieren und worin besteht der Unterschied?

Unternehmen wurden gefragt
fabriqeue

Antwort von AI

sobes.tech KI

Итератор — это объект, который позволяет последовательно обходить элементы коллекции. В 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)