Is there any meaningful distinction between:
class A(object): foo = 5 # some default value
vs.
class B(object): d
The difference is that the attribute on the class is shared by all instances. The attribute on an instance is unique to that instance.
If coming from C++, attributes on the class are more like static member variables.