¿Cómo evitar la recursión infinita con super ()?

Tengo un código como este:

class A(object):
    def __init__(self):
          self.a = 1

class B(A):
    def __init__(self):
        self.b = 2
        super(self.__class__, self).__init__()

class C(B):
    def __init__(self):
        self.c = 3
        super(self.__class__, self).__init__()

La creación de instancias B funciona como se esperaba, pero la creación de instancias C se repite infinitamente y provoca un desbordamiento de la pila. ¿Como puedo resolver esto?

Respuestas a la pregunta(1)

Su respuesta a la pregunta