You should always derive base classes from the builtin class 'object'. It gives them a lot of nice builtin capabilities: multiple inheritance works correctly, type() and instance.__class__ are the same (useful in a debugger, otherwise the instances are of type 'instance', which can be annoying), also (not necessarily applicable here) non-object derived instances are not pickleable