Python Create Iterator
Vytvořte Iterátor
Chcete-li vytvořit objekt/třídu jako iterátor, musíte implementovat metody
__iter__()
a
__next__()
do svého objektu.
Jak jste se dozvěděli v kapitole Třídy/Objekty Pythonu , všechny třídy mají funkci nazvanou
__init__()
, která vám umožňuje provést určitou inicializaci při vytváření objektu.
Metoda __iter__()
se chová podobně, můžete provádět operace (inicializaci atd.), ale vždy musí vrátit samotný objekt iterátoru.
Tato __next__()
metoda vám také umožňuje provádět operace a musí vrátit další položku v pořadí.
Příklad
Vytvořte iterátor, který vrací čísla počínaje 1 a každá sekvence se zvýší o jednu (vrací 1,2,3,4,5 atd.):
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))