我想这段代码比我用文字能更好地解释这个问题。这是my abc.py中的代码:
from abc import ABCMeta, abstractmethod
class MyABC(object):
__metaclass__ = ABCMeta
@abstractmethod
def print(self):
pass
这是my_class.py中的代码
from my_abc import MyABC
from third_party_package import SomeClass
class MyClass(MyABC, SomeClass):
def __init__(self):
super(MyClass, self).__init__()
def print(self):
print('Hello ABC')
当我尝试运行我的_class.py时,我得到:
TypeError: Error when calling the metaclass bases metaclass conflict: the metaclass of a derived class must be a (non-strict) subclass of the metaclasses of all its bases
我知道我可以创建一个直接从接口MyABC继承的类,然后创建另一个从我创建的这个类和我的第三方模块类继承的类。
我的问题是:有没有另一种更好和正确的方法可以直接做到这一点,而不必为我的目的创建一个中间类?
目前没有回答
相关问题 更多 >
编程相关推荐