Python Skep Iterator
Skep 'n Iterator
Om 'n objek/klas as 'n iterator te skep, moet jy die metodes
__iter__()
en
__next__()
na jou objek implementeer.
Soos jy in die Python Classes/Objects- hoofstuk geleer het, het alle klasse 'n funksie genaamd
__init__()
, wat jou toelaat om 'n bietjie te initialiseer wanneer die voorwerp geskep word.
Die __iter__()
metode tree soortgelyk op, jy kan bewerkings doen (initialisering ens.), maar moet altyd die iterator-voorwerp self terugstuur.
Die __next__()
metode laat jou ook toe om bewerkings te doen, en moet die volgende item in die volgorde terugstuur.
Voorbeeld
Skep 'n iterator wat nommers terugstuur, wat begin met 1, en elke ry sal met een vermeerder (wat 1,2,3,4,5 ens. gee):
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))