by Raymond Hettinger for EuroPython 2011
All problems have simple, easy-to-understand, logical wrong answers. Subclassing in Python is no exception. Avoid the common pitfalls and learn everything you need to know about how subclass in Python.
Overriding and extending
Calling your parents
The ellipse / circle problem – what does a subclass mean?
Liskov Substitution Principle
Open Closed Principle
The facts of life when subclassing builtin types
How to Implement Cooperative Multiple Inheritance
A example of perfect and simple python diamond
Beware the Concrete C API