Я пытаюсь понять порядок разрешения метода в несколько раз. Вот код, который я использую. Когда я пытаюсь создать объект класса «ClassC», получает вызов только конструктор класса A. Как разрешаются в этом случае методы?Разрешение метода при множественном наследовании в Python
class ClassA:
def __init__(self):
print "inside a's init"
class ClassB:
def __init__(self):
print "inside b's init"
class ClassC(ClassA,ClassB):
pass
c = ClassC()
Выход:
inside a's init
Вы должны использовать классы нового стиля в Python 2, например 'class ClassA (object):' (в Python 3 все классы являются новыми). А затем добавьте 'super (ClassA, self) .__ init __()' в '.__ init__' метод' ClassA'. (Вы также можете добавить аналогичный вызов в класс ClassB, но это не обязательно, потому что 'ClassB' - это конец цепочки наследования класса ClassC. Если ответ на ядро Python Raymond Hettinger в связанном вопросе не полностью отвечает на ваш вопрос, пожалуйста, дайте мне знать. –
Это было полезно @ PM2Ring. Спасибо – Heisenberg