Как сделать класс итерируемым python

Узнайте, как сделать ваш класс итерируемым в Python с помощью данной статьи: мы расскажем о методах __iter__ и __next__, приведем пример и покажем, как использовать итераторы и генераторы.

Итерируемый класс в Python

Чтобы сделать класс итерируемым в Python, необходимо добавить метод __iter__() в класс. Этот метод должен возвращать итератор, который будет использоваться при итерации по классу. В противном случае Python не сможет правильно итерировать по нему.

Например, следующий класс представляет из себя итерируемую коллекцию целых чисел:

class MyNumbers:
  def __init__(self, start, end):
    self.start = start
    self.end = end

  def __iter__(self):
    self.num = self.start
    return self

  def __next__(self):
    if self.num > self.end:
      raise StopIteration
    current = self.num
    self.num += 1
    return current

nums = MyNumbers(1, 10)

for num in nums:
  print(num)

# Результат:
# 1
# 2
# 3
# 4
# 5
# 6
# 7
# 8
# 9
# 10

В этом примере мы создали класс MyNumbers, который итерируется по диапазону целых чисел. Для этого мы добавили метод __iter__(), который возвращает итератор, представляющий собой экземпляр класса. Далее мы добавили метод __next__(), который возвращает следующее значение в диапазоне. В конце мы проверили итерацию по коллекции, выведя все целые числа из диапазона.

Ответы (0)