Yes, there is a reason for a class declaration to inherit from an object :-
The class style in Python 3.x:
class MyClass(object): = new-style class
class MyClass: = OLD-STYLE CLASS
At the time of the base class definition in Python 3.x, you’re allowed to drop the object from the definition. However, this can open the door for a seriously hard to track problem.
New-style classes are introduced in Python, and by now old-style classes are really quite old. Discussion of old-style classes are buried in the 2.x docs, and they do not exist in Python 3.x.