class Squares:
def __init__(self, start, stop):
self.value = start - 1
self.stop = stop
def __iter__(self): # get iterator object
return self
def next(self): # on each for iteration
if self.value == self.stop:
raise StopIteration
self.value += 1
return self.value ** 2
for i in Squares(1,5):
print i,
X = Squares(1,5)
X = Squares(1,5)
print [n for n in X] # exhausts items
print [n for n in X] # now it's empty
print [n for n in Squares(1,5)]
print list(Squares(1,3))