У меня есть следующий код, в Django:Как назвать супер вмещающего класса в mixin в Python?
class Parent(models.Model):
def save(self):
# Do Stuff A
class Mixin(object):
def save(self):
# Do Stuff B
class A(Parent, Mixin):
def save(self):
super(A, self).save()
# Do stuff C
Теперь я хочу использовать подмешать без blatting поведения сохранить в Parent. Поэтому я, когда я сохраняю, хочу делать вещи C, B и A. Я читал Calling the setter of a super class in a mixin, однако я не понимаю и, прочитав супер-документы, похоже, не отвечает на мой вопрос.
Вопрос в том, что я помещаю в миксин, чтобы убедиться, что он делает материал B и не останавливает материал A?
Вы уверены, что порядок наследования прав - вы обычно положить подмешать * после * родитель ... –
Я не конечно, нет. Я понимаю, что если бы я сделал это наоборот, метод сохранения mixin был бы переопределен Parent. Это верно? –
Нет - MRO (для наложения не алмазов) - справа налево ... –