1

我想构建一个接口,其基类派生自 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机制有效。您对这种行为的原因有任何想法吗?这是预期的事情,如果是这样,如何规避这个?

4

0 回答 0