Yes, there is a difference. At least, there's a difference in Python 2.
class MyStuff:
creates an old-style class,
class MyStuff(object):
creates a new-style class.
In Python 3, all classes are new-style.
From https://docs.python.org/2/reference/datamodel.html#new-style-and-classic-classes
Classes and instances come in two flavors: old-style (or classic) and
new-style.
Up to Python 2.1 the concept of class was unrelated to the concept of
type, and old-style classes were the only flavor available. For an
old-style class, the statement x.__class__
provides the class of x
,
but type(x)
is always <type 'instance'>
. This reflects the fact that
all old-style instances, independent of their class, are implemented
with a single built-in type, called instance.
New-style classes were introduced in Python 2.2 to unify the concepts
of class and type. A new-style class is simply a user-defined type, no
more, no less. If x
is an instance of a new-style class, then type(x)
is typically the same as x.__class__
(although this is not guaranteed
– a new-style class instance is permitted to override the value
returned for x.__class__
).
The major motivation for introducing new-style classes is to provide a
unified object model with a full meta-model. It also has a number of
practical benefits, like the ability to subclass most built-in types,
or the introduction of “descriptors”, which enable computed
properties.
For compatibility reasons, classes are still old-style by default.
New-style classes are created by specifying another new-style class
(i.e. a type) as a parent class, or the “top-level type” object if no
other parent is needed. The behaviour of new-style classes differs
from that of old-style classes in a number of important details in
addition to what type() returns. Some of these changes are fundamental
to the new object model, like the way special methods are invoked.
Others are “fixes” that could not be implemented before for
compatibility concerns, like the method resolution order in case of
multiple inheritance.
While this manual aims to provide comprehensive coverage of Python’s
class mechanics, it may still be lacking in some areas when it comes
to its coverage of new-style classes. Please see
https://www.python.org/doc/newstyle/ for sources of additional
information.
Old-style classes are removed in Python 3, leaving only new-style
classes.