Iterator tworzenia Pythona
Utwórz iterator
Aby stworzyć obiekt/klasę jako iterator, musisz zaimplementować metody
__iter__()
i
__next__()
do swojego obiektu.
Jak dowiedziałeś się z rozdziału Klasy/Obiekty Pythona , wszystkie klasy mają funkcję o nazwie
__init__()
, która umożliwia inicjalizację podczas tworzenia obiektu.
Metoda __iter__()
działa podobnie, możesz wykonywać operacje (inicjowanie itp.), ale zawsze musi zwracać sam obiekt iteratora.
Metoda __next__()
pozwala również na wykonywanie operacji i musi zwrócić następny element w sekwencji.
Przykład
Utwórz iterator, który zwraca liczby, zaczynając od 1, a każda sekwencja zwiększy się o jeden (zwracając 1,2,3,4,5 itd.):
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))