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 _______________________________________________ Python-Dev mailing list Python-Dev@python.org http://mail.python.org/mailman/listinfo/python-dev Unsubscribe: http://mail.python.org/mailman/options/python-dev/archive%40mail-archive.com