[Python-Dev] PEP 3000 and iterators

Guido van Rossum guido at python.org
Sat Sep 10 02:49:39 CEST 2005


On 9/9/05, Lisandro Dalcin <dalcinl at gmail.com> wrote:
> PEP 3000 says
> (http://www.python.org/peps/pep-3000.html) :
> 
> Core language
> - Return iterators instead of lists where appropriate for atomic type
> methods (e.g. dict.keys(), dict.values(), dict.items(), etc.)
> 
> Built-in Namespace
> - Make built-ins return an iterator where appropriate (e.g. range(),
> zip(), etc.)
> - Relevant functions should consume iterators (e.g. min(), max())
> To be removed:
> - xrange(): use range() instead [1]
> 
> Any possibility to add one (or more) __future__ statement to
> implicitly get this behavior? Any suggestion about naming?

For the builtins, it would actually be possible to do this by simply
importing an alternate builtins module. Something like

  from future_builtins import min, max, zip, range

For methods on standard objects like dicts it's not really possible
either way; the type of a dict is determined by the module containing
the code creating it, not the module containing the code using it.

-- 
--Guido van Rossum (home page: http://www.python.org/~guido/)


More information about the Python-Dev mailing list