[Python-Dev] PEP 0424: A method for exposing a length hint

Alex Gaynor alex.gaynor at gmail.com
Sun Jul 15 01:21:45 CEST 2012


On Sat, Jul 14, 2012 at 4:18 PM, Benjamin Peterson <benjamin at python.org>wrote:

> 2012/7/14 Alex Gaynor <alex.gaynor at gmail.com>:
> >
> > Proposal
> > ========
> >
> > This PEP proposes formally documenting ``__length_hint__`` for other
> > interpreter and non-standard library Python to implement.
> >
> > ``__length_hint__`` must return an integer, and is not required to be
> accurate.
> > It may return a value that is either larger or smaller than the actual
> size of
> > the container. It may raise a ``TypeError`` if a specific instance
> cannot have
> > its length estimated. It may not return a negative value.
>
> And what happens if you return a negative value?
>
>
ValueError, the same as with len.


> >
> > Rationale
> > =========
> >
> > Being able to pre-allocate lists based on the expected size, as
> estimated by
> > ``__length_hint__``, can be a significant optimization. CPython has been
> > observed to run some code faster than PyPy, purely because of this
> optimization
> > being present.
> >
> > Open questions
> > ==============
> >
> > There are two open questions for this PEP:
> >
> > * Should ``list`` expose a kwarg in it's constructor for supplying a
> length
> >   hint.
> > * Should a function be added either to ``builtins`` or some other module
> which
> >   calls ``__length_hint__``, like ``builtins.len`` calls ``__len__``.
>
> Let's try to keep this as limited as possible for a public API.
>
>
Sounds reasonable to me!  Should we just go ahead and strip those out now?


>
> --
> Regards,
> Benjamin
>

Alex

-- 
"I disapprove of what you say, but I will defend to the death your right to
say it." -- Evelyn Beatrice Hall (summarizing Voltaire)
"The people's good is the highest law." -- Cicero
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.python.org/pipermail/python-dev/attachments/20120714/c8cfb6d7/attachment.html>


More information about the Python-Dev mailing list