list.clear() missing?!?

Steven Bethard steven.bethard at gmail.com
Thu Apr 13 11:39:28 EDT 2006


Raymond Hettinger wrote:
> [Steven Bethard]
>> I think these are all good reasons for adding a clear method, but being
>> that it has been so hotly contended in the past, I don't think it will
>> get added without a PEP.  Anyone out there willing to take out the best
>> examples from this thread and turn it into a PEP?
> 
> Something this small doesn't need a PEP.  I'll just send a note to
> Guido asking for a pronouncement.

Thanks.  It'd be nice to have something to refer to the next time this 
comes up.

> Here's a draft list of pros and cons (any changes or suggestions are
> welcome):
> 
> Pros:
> -----
> 
> * s.clear() is more obvious in intent
> 
> * easier to figure-out, look-up, and remember than either s[:]=[] or
> del s[:]
> 
> * parallels the api for dicts, sets, and deques (increasing the
> expecation that lists will too)
>
> * the existing alternatives are a bit perlish
> 

I'd snip the one below.  It doesn't really contribute anything, and was 
sarcastic in the first place. ;)

> * the OP is shocked, SHOCKED that python got by for 16 years without
> list.clear()
> 
> 
> Cons:
> -----
> 
> * makes the api fatter (there are already two ways to do it)
> 
> * expanding the api makes it more difficult to write classes that can
> be polymorphically substituted for lists
> 
> * learning slices is basic to the language (this lesson shouldn't be
> skipped)
> 
> * while there are valid use cases for re-using lists, the technique is
> already overused for unsuccessful attempts to micro-optimize (creating
> new lists is surprisingly fast)
> 

In fairness, if we're going to drop the "SHOCKED" comment, we should 
drop the first two clauses of the point below (but the "relevant idiom" 
part is clearly a good point).

> * the request is inane, the underlying problem is trivial, and the
> relevant idiom is fundamental (api expansions should be saved for rich
> new functionality and not become cluttered with infrequently used
> redundant entries)

Other than those minor edits, I think you've pretty much gotten 
everything.  I look forward to a pronouncement.

Thanks again!

STeVe



More information about the Python-list mailing list