[Python-Dev] python and super (original) (raw)

Raymond Hettinger raymond.hettinger at gmail.com
Thu Apr 14 18:02:13 CEST 2011


On Apr 14, 2011, at 8:34 AM, P.J. Eby wrote:

At 03:55 PM 4/14/2011 +0100, Michael Foord wrote:

Ricardo isn't suggesting that Python should always call super for you, but when you start the chain by calling super then Python could ensure that all the methods are called for you. If an individual method doesn't call super then a theoretical implementation could skip the parents methods (unless another child calls super). That would break classes that deliberately don't call super. I can think of examples in my own code that would break, especially in init() cases. It's perfectly sensible and useful for there to be classes that intentionally fail to call super(), and yet have a subclass that wants to use super(). So, this change would expose an internal implementation detail of a class to its subclasses, and make "fragile base class" problems worse. (i.e., where an internal change to a base class breaks a previously-working subclass).

I agree. Better for someone to submit a recipe for a variant of super and see if there is any uptake.

Raymond



More information about the Python-Dev mailing list