Slide 68
Slide 68 text
ITERABLE TRAIN WITH A GENERATOR METHOD
The Iterator pattern as a language feature:
68
class Train:
def __init__(self, cars):
self.cars = cars
def __iter__(self):
for i in range(self.cars):
yield 'car #%s' % (i+1)
Train is now iterable
because __iter__
returns a generator!
>>> t = Train(3)
>>> it = iter(t)
>>> it
>>> next(it), next(it), next(it)
('car #1', 'car #2', 'car #3')