Как сделать класс итерируемым 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__()
, который возвращает следующее значение в диапазоне. В конце мы проверили итерацию по коллекции, выведя все целые числа из диапазона.
p