Also, ich denke, der Code wahrscheinlich erklärt, was ich versuche, es besser zu machen, als ich es in Worte, so hier geht:Abstrakte Klasse + mixin + Mehrfachvererbung in 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()
Das Ergebnis:
TypeError: Can't instantiate abstract class myfoo with abstract methods bar
ich versuche, die mixin Klasse erfüllen die Anforderungen der abstrakten/Interface-Klasse zu erhalten. Was vermisse ich?
Guten Ruf, um die Reihenfolge der Vererbung ändert sie den Trick . P.S. Der Code wurde vereinfacht, um einen Punkt zu veranschaulichen. Mein Szenario in der realen Welt ist viel komplexer mit vielen potenziellen Mixins und vielen Myfoos. – mluebke