【发布时间】:2021-05-16 07:00:01
【问题描述】:
我想知道是否可以在 python 中使用带有抽象基类的多重继承。似乎应该是可能的,但无法以一种或另一种方式找到陈述。
基本的 ABC 示例:
from abc import ABC, abstractmethod
class BaseABC(ABC):
@abstractmethod
def hello(self):
pass
class Child(BaseABC):
pass
child = Child()
这将失败,因为 "hello" 没有在 "Child" 中实现。
我想知道如何将 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()
这也不会失败。我怎样才能要求“孩子”来实现“你好”?
【问题讨论】:
标签: python multiple-inheritance abc