[Python-Dev] iterator API in Py3.0

Jeremy Hylton jeremy at alum.mit.edu
Fri Mar 3 22:09:34 CET 2006


On 3/3/06, Raymond Hettinger <raymond.hettinger at verizon.net> wrote:
> The double underscore convention is appropriate where the method is always
> invoked magically in normal code and not called directly.  The next() method is
> differenct because it is a mixed case, sometimes called magically and sometimes
> called directly.  In the latter case, the name is highly visible and therefore
> should not have double underscores.
>
> I suspect that those who feel differently are ones who usually avoid calling
> next() directly.  That's okay, but we shouldn't muck-up the naming for the rest
> of us who often do have a need to use next().
>
> This is doubly important because we're now expanding the protocol to include
> send() and throw().  Adding underscores around them too will only make those
> methods look harder to use than they actually are.  Don't underestimate the
> psychological revulsion to calling code filled with piles of double underscores.

I think it is a little odd that next is not spelled __next__, but I
appreciate the reasons given here in particular.  Every time I right
.next(), I'm happy that it doesn't have underscores.

Jeremy


More information about the Python-Dev mailing list