У меня такой код:
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__()
Создание экземпляра B работает так, как ожидалось, но инстанцирование C бесконечно рекурсивно и вызывает переполнение стека. Как я могу это решить?