[Python-ideas] OrderedCounter and OrderedDefaultDict

Brendan Barnwell brenbarn at brenbarn.net
Wed Oct 21 07:54:25 CEST 2015


On 2015-10-20 18:50, Steven D'Aprano wrote:
> Take dict. One nuisance with inheriting from dict is that it isn't
> sufficient to override __setitem__, you also have to override update and
> clear as well. And possibly others -- the exact set of which methods
> depend on which other methods are not documented in the dict API. Given
> an arbitrary class, how can you possibly tell which methods you need to
> override, or even which methods are*safe*  to override?

	I've always considered that (and related problems) to be one of 
Python's warts.  And, as you say, it's a documentation flaw.

	It's true that it's easy to write classes with poorly documented APIs, 
which makes them hard to extend because you don't know how they work. 
But I don't think that means subclassing is not a good idea.  It means 
writing classes with clearly-specified APIs is a good idea.

-- 
Brendan Barnwell
"Do not follow where the path may lead.  Go, instead, where there is no 
path, and leave a trail."
    --author unknown


More information about the Python-ideas mailing list