Is there any good reason not to use `isinstance`? The problem is that you should not need to change the superclass when writing a new subclass.