Dave Angel wrote:
On 12/17/2012 09:33 AM, Skip Montanaro wrote:
What method(s) does a class have to support to properly emulate a container
which supports turning it into a list?  For example:

  class Foo:
    pass

  f = Foo()
  print list(f)

Is it just __iter__() and next()?  (I'm still using 2.4 and 2.7.)

I believe the container class needs to define the __iter__() method,
which has to return an iterator object.

That (possibly different) iterator class needs both an __iter__() method
and a next() method.

If the container class is also the iterator class, which is common, then
you just need one __iter__() method, which returns self.

The `next()` method is also needed, as `__iter__()` and `next()` are the two methods that make up the iterator protocol (`__next__` in python 3k).

~Ethan~
--
http://mail.python.org/mailman/listinfo/python-list

Reply via email to