已编辑
我有 2 个类继承自ABC
,第三个类继承自这两个类,每个类都在不同的文件中。试图提供ABCMeta
最后一个类的元类,以解决元类的冲突,但同样失败
"TypeError: metaclass conflict: the metaclass of a derived class must be a (non-strict) subclass of the metaclasses of all its bases"
为什么在这种情况下python会忽略元类指令,以及如何解决它?
文件A:
from abc import ABC, abstractmethod
class A(ABC):
@abstractmethod
def method1(self):
pass
文件 B:
from abc import ABC, abstractmethod
class B(ABC):
@abstractmethod
def method2(self):
pass
文件 C:
import A
import B
class C(A,B,metaclass=ABCMeta):
def method1(self):
pass
def method2(self):
pass
问题源于错误的导入。文件 C 应该是:
from A import A
from B import B
class C(A,B):
def method1(self):
pass
def method2(self):
pass
应该归功于@Matthias 和@Giacomo Alzetta,他们指出 MCVE 为他们工作。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句