¿Cuál es la diferencia entre los atributos de clase y instancia?

¿Hay alguna distinción significativa entre:

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

contra

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

Si está creando muchas instancias, ¿hay alguna diferencia en el rendimiento o los requisitos de espacio para los dos estilos? Cuando lee el código, ¿considera que el significado de los dos estilos es significativamente diferente?

Respuestas a la pregunta(6)

Su respuesta a la pregunta