Python Создать итератор
Создать итератор
Чтобы создать объект/класс в качестве итератора, вы должны реализовать методы
__iter__()
и
__next__()
свой объект.
Как вы узнали из главы « Классы/объекты Python» , все классы имеют функцию с именем
__init__()
, которая позволяет выполнять некоторую инициализацию при создании объекта.
Метод __iter__()
действует аналогично, вы можете выполнять операции (инициализация и т. д.), но всегда должны возвращать сам объект итератора.
Метод __next__()
также позволяет выполнять операции и должен возвращать следующий элемент в последовательности.
Пример
Создайте итератор, который возвращает числа, начиная с 1, и каждая последовательность будет увеличиваться на единицу (возвращая 1,2,3,4,5 и т. д.):
class MyNumbers:
def __iter__(self):
self.a =
1
return self
def __next__(self):
x = self.a
self.a += 1
return x
myclass = MyNumbers()
myiter = iter(myclass)
print(next(myiter))
print(next(myiter))
print(next(myiter))
print(next(myiter))
print(next(myiter))