[Python-Dev] PEP czar for PEP 3144?

Guido van Rossum guido at python.org
Mon Mar 19 23:04:52 CET 2012


On Mon, Mar 19, 2012 at 2:58 PM, Peter Moody <pmoody at google.com> wrote:
> On Mon, Mar 19, 2012 at 12:55 PM, Guido van Rossum <guido at python.org> wrote:
>> On Mon, Mar 19, 2012 at 12:37 PM, Ethan Furman <ethan at stoneleaf.us> wrote:
>>> Nick Coghlan wrote:
>>>>
>>>> Collapsing the address list has to build the result list anyway to
>>>> actually handle the deduplication part of its job, so returning a
>>>> concrete list makes sense in that case.
>>>
>>>
>>> Having only one function return a list instead of an iterator seems
>>> questionable.
>>>
>>> Depending on the code it could either keep track of what it has returned so
>>> far in a set and avoid duplication that way; or, just return an
>>> `iter(listobject)` instead of `listobject`.
>>
>> I know I'm lacking context, but is the list ever expected to be huge?
>> If not, what's wrong with always returning a list?
>
> It's possible to return massive lists, (eg, returning the 4+ billion
> /128 subnets in /96 or something even larger, but I don't think that's
> very common). I've generally tried to avoid confusion by having 'iter'
> in the iterating methods, but if more of the methods return iterators,
> maybe I need to rethink that?

I personally like having 'iter' in the name (e.g. iterkeys() -- note
that we dropped this in Py3k because it's no longer an iterator, it's
a dict view now. But I don't want to promote that style for ipaddr.py.

-- 
--Guido van Rossum (python.org/~guido)


More information about the Python-Dev mailing list