> > in summary: iterator is bound to one instance of "it", while some_func() > returns a new instance each time it is called. > > BUT > > while what you are doing is interesting, it is not the same as Python's > iterators, which use "yield" from a function and don't require storing a > value in a class. look for "yield" in the python docs. this comment may > be irrelevant; i am just worried you are confusing the above (which apart > from the mistake about instances is perfectly ok) and python's iterators > (which use next(), yield, etc). >
Okay, one last question for now When I have the follow class >>> class it: ... def __init__(self): ... self.count = -1 ... def next(self): ... self.count +=1 ... if self.count < 4: ... return self.count ... else: ... raise StopIteraton ... >>> value = it() How comes I can;t go over 'value' like in the following >>> for x in value: ... print x ... Traceback (most recent call last): File "<stdin>", line 1, in ? TypeError: iteration over non-sequence But yet, I can do... >>> value.next() 0 >>> value.next() 1 >>> value.next() 2 >>> value.next() 3 >>> -- http://mail.python.org/mailman/listinfo/python-list