我想知道在python中是否可以使用抽象基类的多重继承。似乎这应该是可能的,但无论如何都找不到一个陈述
基本ABC示例:
from abc import ABC, abstractmethod
class BaseABC(ABC):
@abstractmethod
def hello(self):
pass
class Child(BaseABC):
pass
child = Child()
由于“Child”中未实现“hello”,因此此操作将失败
我想知道的是如何将ABC与多重继承相结合。我想让“BaseABC”或“Child”也从其他单独的类继承。明确地:
from abc import ABC, abstractmethod
class BaseABC(ABC, dict):
@abstractmethod
def hello(self):
pass
class Child(BaseABC):
pass
child = Child()
这并不像第一个案例那样以预期的方式失败。此外:
from abc import ABC, abstractmethod
class BaseABC(ABC):
@abstractmethod
def hello(self):
pass
class Child(BaseABC, dict):
pass
child = Child()
这也没有失败。如何要求“Child”实现“hello”
问题在于从dict继承,这些人可能更好地解释了这一点:
因此,根据您想对子类dict执行的操作,您可以使用https://stackoverflow.com/a/3387975/14536215中建议的MutableMapping或UserDict(这是可变映射的子类),例如:
相关问题 更多 >
编程相关推荐