我正在尝试创建一个python(3.5)类结构,在其中我使用抽象方法来指示应实现的方法。预期的工作如下:
from abc import ABC, abstractmethod
class Base(ABC):
@abstractmethod
def foo(self):
pass
class Derived(Base, object):
# Inheriting from object probably is superfluous (?)
pass
Derived() # throws a TypeError
当我向Derived
添加一个类时,它不再起作用。此处显示为tuple
(在我的具体情况下,我想使用np.ndarray
):
class Base(ABC):
@abstractmethod
def foo(self):
pass
class Derived(Base, tuple):
pass
Derived() # does not throw an error
Python中的抽象基类是否不打算用于多重继承?当然,我可以添加老式的NotImplementedError
,但是只有在调用该方法时才会引发错误。