[Python-Dev] Re: anonymous blocks

Tim Delaney tcdelaney at optusnet.com.au
Tue Apr 26 00:10:44 CEST 2005


Paul Moore wrote:

> Hmm, it took me a while to get this, but what you're ssaying is that
> if you modify Guido's "what I really want" solution to use
>
>    VAR = next(it, exc)
>
> then this builtin next makes "API v2" stuff using __next__ work while
> remaining backward compatible with old-style "API v1" stuff using
> 0-arg next() (as long as old-style stuff isn't used in a context where
> an exception gets passed back in).

Yes, but it could also be used (almost) anywhere an explicit obj.next() is 
used.

it = iter(seq)

while True:
    print next(it)

for loops would also change to use builtin next() rather than calling 
it.next() directly.

> I'd suggest that the new builtin have a "magic" name (__next__ being
> the obvious one :-)) to make it clear that it's an internal
> implementation detail.

There aren't many builtins that have magic names, and I don't think this 
should be one of them - it has obvious uses other than as an implementation 
detail.

> PS The first person to replace builtin __next__ in order to implement
> a "next hook" of some sort, gets shot :-)

Damn! There goes the use case ;)

Tim Delaney 



More information about the Python-Dev mailing list