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

Как превратить обычный класс в итерируемый в Python

Чтобы сделать класс итерируемым, нужно реализовать метод __iter__(), который возвращает итератор. Итератор — это объект, реализующий метод __next__().

Пример:

python
class MyIterable:
    def __init__(self, data):
        self.data = data
text
def __iter__(self):
    self.index = 0
    return self  # сам класс выступает итератором

def __next__(self):
    if self.index >= len(self.data):
        raise StopIteration
    value = self.data[self.index]
    self.index += 1
    return value

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

my_obj = MyIterable([1, 2, 3])
for item in my_obj:
print(item) # 1, 2, 3

text

Альтернативно, можно вернуть отдельный итератор (например, через `iter(data)`). Главное — чтобы `__iter__()` возвращал объект с `__next__()`.
Sophi
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
Попробовать бесплатноArrow

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

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

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