Nagy László Zsolt wrote:
I do not use diamond shapes in my hierarchy, I guess that does not affect me. I may be wrong.
If there are no diamonds, there is no need to use super. Explicit inherited method calls, done correctly, will work fine. The only downside is that if your inheritance hierarchy changes, you need to review all your inherited calls to make sure they're still correct. The use of super to address that issue seems attractive. However, super is only applicable if some rather stringent requirements are met: 1. All the methods must have compatible signatures. 2. Except for 3 below, all classes participating in the hierarchy must use super for a given method if any of them do, including any future subclasses. 3. There must be a class at the top of the hierarchy that does *not* make super calls, to terminate the chain. 4. It must not matter what order the methods in a super chain are called. This is because you cannot predict which method a given super call will invoke. It could belong to a subclass of the class making the call. If you can't satisfy *all* of these reqirements, then you can't use super. Sorry, but that's just the way super is. -- Greg -- https://mail.python.org/mailman/listinfo/python-list