[Python-3000] PEP: rename it.next() to it.__next__(), add a next() built-in
Collin Winter
collinw at gmail.com
Mon Mar 5 17:28:44 CET 2007
On 3/5/07, Ka-Ping Yee <python-dev at zesty.ca> wrote:
[snip]
> Transition Plan
> ===============
>
> Two additional transformations will be added to the 2to3 translation
> tool [2]_:
>
> * Method definitions named ``next`` will be renamed to ``__next__``.
>
> * Explicit calls to the ``next`` method will be replaced with calls
> to the built-in ``next`` function. For example, ``x.next()`` will
> become ``next(x)``.
>
> If the module being processed already contains a top-level function
> definition named ``next``, the second transformation will not be done;
> instead, calls to ``x.next()`` will be replaced with ``x.__next__()``
> and a warning will be emitted.
The basic transformations for this are (relatively) easy to implement.
Basing the second transformation on the absence of a top-level
function definition (don't forget assignments and imports!) for
"next", though, is going to require some surgery to 2to3's internals.
I'll see what I can do.
Collin Winter
More information about the Python-3000
mailing list