Qual é a diferença entre atributos de classe e instância?

Existe alguma distinção significativa entre:

class A(object):
    foo = 5   # some default value

vs.

class B(object):
    def __init__(self, foo=5):
        self.foo = foo

Se você está criando muitas instâncias, existe alguma diferença nos requisitos de desempenho ou espaço para os dois estilos? Quando você lê o código, você considera o significado dos dois estilos significativamente diferente?

questionAnswers(6)

yourAnswerToTheQuestion