Re: Supporting list()

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

  1. Ethan Furman

    Ethan Furman Guest

    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.)



    You can either use __iter__ and next to conform to the iterator
    protocol, or you can define __getitem__.

    If using __getitem__ it needs to work with integers from 0 to len(f)-1,
    and raise IndexError for len(f), len(f+1), etc.

    ~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:
    112
    Huw Collingbourne
    May 30, 2008
  2. Skip Montanaro

    Supporting list()

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

    Re: Supporting list()

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

    Re: Supporting list()

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

    Re: Supporting list()

    Ethan Furman, Dec 17, 2012, in forum: Python
    Replies:
    0
    Views:
    198
    Ethan Furman
    Dec 17, 2012
Loading...

Share This Page