我想构建一个接口,其基类派生自 python 内置类型,例如 dict。为此,我使用了abc
标准库的 python,但是当我运行以下测试时,没有为具体类实现中缺少的方法引发异常。
import abc
class Base(dict):
__metaclass__ = abc.ABCMeta
@abc.abstractmethod
def toto(self):
pass
class Concrete(Base):
pass
if __name__ == "__main__":
c = Concrete()
如果类Base
现在派生自object
而不是dict
派生,则预期的abc
机制有效。您对这种行为的原因有任何想法吗?这是预期的事情,如果是这样,如何规避这个?