Por lo tanto, creo que el código probablemente explica por qué estoy tratando de hacerlo mejor que puedo con palabras, así que aquí va:clase abstracta + + mixin herencia múltiple en 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()
El resultado:
TypeError: Can't instantiate abstract class myfoo with abstract methods bar
estoy tratando de conseguir la clase mixin para satisfacer los requisitos de la clase abstracta/interfaz. ¿Qué me estoy perdiendo?
Buena decisión, cambiando el orden de herencia hace el truco . P.S. el código fue simplificado para ilustrar un punto. Mi escenario del mundo real es mucho más complejo con muchos mixins potenciales y muchos myfoos. – mluebke