I don't want to write a class unless I can say what its functionality is independently of how it might be used by other classes, where inheritance falls under "used". 

(For me the evidence that shared functionality is shared for causal reasons, as opposed to coincidence, is that it can be built and tested on its own. So probably I write fewer shared base classes than your average Python/OO programmer. I also tend to prefer composition over the inheritance, which goes hand-in-hand with this. OK enough philosophy, but it was intentional :-)