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

_______________________________________________
Python-Dev mailing list
Python-Dev@python.org
http://mail.python.org/mailman/listinfo/python-dev
Unsubscribe: 
http://mail.python.org/mailman/options/python-dev/archive%40mail-archive.com

Reply via email to