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

Stefan Behnel stefan_ml at behnel.de
Mon Jul 16 09:10:45 CEST 2012


Antoine Pitrou, 15.07.2012 17:06:
> On Sun, 15 Jul 2012 16:33:23 +0200
> Christian Heimes wrote:
>> Am 15.07.2012 16:22, schrieb Antoine Pitrou:
>>> On Mon, 16 Jul 2012 00:08:41 +1000
>>> Nick Coghlan wrote:
>>>> Right, I agree on the value in being able to return something to say "this
>>>> cannot be converted to a concrete container".
>>>
>>> Who would be able to return that, apart from trivial cases like
>>> itertools.cycle()?
>>
>> For example most numerical sequence iterators like Fibonacci generator,
>> prime number sequence generator and even trivial cases like even natural
>> number generator.
> 
> First, you can't implement __length_hint__ for a generator, which is the
> preferred (the most practical) way of writing iterators in pure Python.

It can be implemented for generator expressions without a conditional,
though, including the case of comprehensions. I wanted to do this in Cython
for a while, but the protocol wasn't very well adapted to that use case.
The "don't know" case was just too common and inefficient.

For the other points, I agree with the already presented counterarguments.
Being able to prevent some obvious traps is a good thing, even if you can't
prevent all of them.

Stefan



More information about the Python-Dev mailing list