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)