Я работал над кодом множественного наследования, который выглядит примерно так:
class Document():
def save(self, x):
print "inside Document from " + x
class Cdm(object):
def save(self,x):
print "inside Cdm from " + x
super(Cdm,self).save('Cdm')
class Contacts(Cdm, Document):
def __init__(self):
self.save('Contacts')
Это результат, который я получаю при создании экземпляра контактов.
> c = Contacts()
< inside Cdm from Contacts
< inside Document from Cdm
Теперь это просто странно, возможно, на мой взгляд. Я мог что-то неправильно понять. Как видите, класс Contacts наследуется от cdm и Document. Я пытаюсь использовать метод сохранения Cdm из контактов. Но Cdm наследует от объекта и не имеет метода суперкласса, называемого save, но при этом вызывает функцию save из класса Document. В программе то, над чем я работаю, это поведение, которое я хочу, но я волнуюсь, так как теоретически это не должно работать или, по крайней мере, я так думаю.
Есть ли у вас какие-либо комментарии по этому поводу. Или я неправильно понял наследство Питона.