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

_______________________________________________
Tutor maillist  -  [email protected]
To unsubscribe or change subscription options:
http://mail.python.org/mailman/listinfo/tutor

Reply via email to