I have found that both of the following work:
In Python 2, not inheriting from
object will create an old-style class, which, amongst other effects, causes
type to give different results:
>>> class Foo: pass ... >>> type(Foo()) <type 'instance'>
>>> class Bar(object): pass ... >>> type(Bar()) <class '__main__.Bar'>
Also the rules for multiple inheritance are different in ways that I won't even try to summarize here. All good documentation that I've seen about MI describes new-style classes.
Finally, old-style classes have disappeared in Python 3, and inheritance from
object has become implicit. So, always prefer new style classes unless you need backward compat with old software.