Так что, я думаю, что код, вероятно, объясняет то, что я пытаюсь сделать лучше, чем я могу в словах, так что здесь идет:Абстрактный класс + Mixin + множественное наследование в Python
import abc
class foo(object):
__metaclass__ = abc.ABCMeta
@abc.abstractmethod
def bar(self):
pass
class bar_for_foo_mixin(object):
def bar(self):
print "This should satisfy the abstract method requirement"
class myfoo(foo, bar_for_foo_mixin):
def __init__(self):
print "myfoo __init__ called"
self.bar()
obj = myfoo()
Результат:
TypeError: Can't instantiate abstract class myfoo with abstract methods bar
Я пытаюсь получить класс mixin для удовлетворения требований класса abstract/interface. Что мне не хватает?
Хороший вызов, изменяя порядок наследования делает трюк , P.S. код был упрощен, чтобы проиллюстрировать точку. Мой сценарий в реальном мире намного сложнее с множеством потенциальных миксинов и множеством мифов. – mluebke