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

Reply via email to