Python: добавить класс в базы других классов - PullRequest
0 голосов
/ 22 апреля 2020

я пытаюсь добавить класс к базам других классов:

class A(object):
    def __init__(self, name):
        self.name = name

class AMixin(object):
    def mixinExample(self):
        return ("in AMixin.mixinExample" + self.name)

def MixIn(TargetClass, MixInClass):
    if MixInClass not in TargetClass.__bases__:
        TargetClass.__bases__ += (MixInClass,)

if __name__ == "__main__":
    a_instance = A("Q7")
    MixIn(A,AMixin)
    print(a_instance.mixinExample())

, и я получаю эту ошибку:

TypeError: Cannot create a consistent method resolution
order (MRO) for bases object, AMixin

Я получил эту ошибку, потому что оба класса (A и AMixin) присуще «объекту»?

1 Ответ

0 голосов
/ 22 апреля 2020

Вы пытаетесь установить для баз A значение (object, AMixin). Этот порядок означает, что object методы должны переопределять AMixin методы.

Однако AMixin наследуется от object, а это означает, что AMixin методы должны переопределять object методы.

Невозможно выполнить оба эти требования, следовательно, ошибка.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...