OrderedDict的抽象子类? python3

时间:2018-10-20 22:21:59

标签: python-3.x collections abstract-class abc

ABC和OrderedDict的子类不能作为真正的抽象类:

>>> from abc import ABC, abstractmethod
>>> from collections import OrderedDict
>>> class AbstractOrderedDict(OrderedDict, ABC):
...     @abstractmethod
...     def abstract_method(self):
...         pass
... 
>>> AbstractOrderedDict()
AbstractOrderedDict()

人们会期望AbstractOrderedDict的实例化失败,对吧?

进一步的实验表明,子类objectABC的实例化(显然)会在实例化时引发TypeError,但子类化其他任何基本类(dict,int,list等)却不会(的行为如上所述)。

问题:

  1. 为什么会这样表现?
  2. 从理论上讲,构造OrderedDict(或其他)的抽象子类是一个坏主意吗?
    1. 为什么?
    2. 替代品?

0 个答案:

没有答案