我想构建一个接口,其基类派生自python内置类型,如dict。为此,我使用标准库的python abc
,但是当我运行以下测试时,在具体类实现中没有为缺少的方法引发异常。
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
机制可以正常运行。你对这种行为的原因有什么看法吗?这是预期的事情,如果是这样,如何规避这个?