Christopher Spears wrote: > I'm not sure if I understand __iter__. You use it to > create an object that iterates through itself using a > next menthod ?
Yes, you seem to have it right. Your code is fine IMO. In many cases it's easier to use a generator than an iterator class. If you are using this in real code (as opposed to just trying to understand __iter__) you should learn about them. Here is your example with a generator: >>> def squares(start, stop): ... for i in range(start, stop+1): ... yield i*i ... >>> for i in squares(1, 5): ... print i, ... 1 4 9 16 25 Learn about generators here: http://www.python.org/doc/2.3.5/whatsnew/section-generators.html Kent > > class Squares: > def __init__(self, start, stop): > self.value = start - 1 > self.stop = stop > def __iter__(self): > return self > def next(self): > if self.value == self.stop: > raise StopIteration > self.value += 1 > return self.value ** 2 > > >>>>from iters import Squares >>>>for i in Squares(1, 5): > > ... print i, > ... > 1 4 9 16 25 > > > "I'm the last person to pretend that I'm a radio. I'd rather go out and be a > color television set." > -David Bowie > > "Who dares wins" > -British military motto > > "I generally know what I'm doing." > -Buster Keaton > _______________________________________________ > Tutor maillist - Tutor@python.org > http://mail.python.org/mailman/listinfo/tutor > > _______________________________________________ Tutor maillist - Tutor@python.org http://mail.python.org/mailman/listinfo/tutor