Re: Supporting list()

Discussion in 'Python' started by Ethan Furman, Dec 17, 2012.

  1. Ethan Furman

    Ethan Furman Guest

    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~
     
    Ethan Furman, Dec 17, 2012
    #1
    1. Advertising

Want to reply to this thread or ask your own question?

It takes just 2 minutes to sign up (and it's free!). Just click the sign up button to choose a username and then you can ask your own questions on the forum.
Similar Threads
  1. Lin Chat
    Replies:
    3
    Views:
    107
    Huw Collingbourne
    May 30, 2008
  2. Skip Montanaro

    Supporting list()

    Skip Montanaro, Dec 17, 2012, in forum: Python
    Replies:
    0
    Views:
    148
    Skip Montanaro
    Dec 17, 2012
  3. Dave Angel

    Re: Supporting list()

    Dave Angel, Dec 17, 2012, in forum: Python
    Replies:
    0
    Views:
    154
    Dave Angel
    Dec 17, 2012
  4. Ethan Furman

    Re: Supporting list()

    Ethan Furman, Dec 17, 2012, in forum: Python
    Replies:
    0
    Views:
    186
    Ethan Furman
    Dec 17, 2012
  5. Skip Montanaro

    Re: Supporting list()

    Skip Montanaro, Dec 17, 2012, in forum: Python
    Replies:
    0
    Views:
    153
    Skip Montanaro
    Dec 17, 2012
Loading...

Share This Page