[Tutor] making object iterable
bob gailer
bgailer at gmail.com
Sun Feb 6 02:12:14 CET 2011
On 2/5/2011 2:46 PM, Alex Hall wrote:
> 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
>
Have you considered subclassing list? That would solve many problems.
--
Bob Gailer
919-636-4239
Chapel Hill NC
More information about the Tutor
mailing list