Hi all, I have a class which has a list as an attribute, meaning you must say something like: for result in obj.results: ... I want to make life a bit easier and let users just say: for result in obj: ... Here is what I have tried to make my class into an iterable one, yet I get an error saying that the class does not support indexing:
def __iter__(self): #makes this class indexable instead of having to use its "results" list return self.iterate() def iterate(self): i=0 while i<len(self.results): yield self.results[i] i+=1 I am not sure why this does not work, unless I am misunderstanding something about iterators and iterables? I thought an iterable, which is what I am shooting for, was an iterator on steroids, allowing indexing, multiple passes over the list, and all that. Do I want to make this an iterator instead of an iterable? -- Have a great day, Alex (msg sent from GMail website) [email protected]; http://www.facebook.com/mehgcap _______________________________________________ Tutor maillist - [email protected] To unsubscribe or change subscription options: http://mail.python.org/mailman/listinfo/tutor
