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

Как реализован итератор в Python

В Python итератор — это объект, который реализует протокол итератора, состоящий из двух методов:

  1. __iter__() — возвращает сам объект итератора
  2. __next__() — возвращает следующий элемент или вызывает StopIteration

Пример простого итератора:

python
class Counter:
    def __init__(self, low, high):
        self.current = low
        self.high = high
text
def __iter__(self):
    return self

def __next__(self):
    if self.current > self.high:
        raise StopIteration
    else:
        self.current += 1
        return self.current - 1

Использование

for num in Counter(1, 5):
print(num) # 1, 2, 3, 4, 5

text

Также можно создавать итераторы с помощью генераторов (функций с `yield`), что часто проще:

```python
def counter(low, high):
    current = low
    while current <= high:
        yield current
        current += 1

Встроенные типы (list, dict, set и др.) уже реализуют протокол итератора.

Sophi
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
Попробовать бесплатноArrow

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

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

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