Como subclassificar um OrderedDict?

Subclassificando um Pythondict funciona como esperado:

>>> class DictSub(dict):
...     def __init__(self):
...         self[1] = 10
...         
>>> DictSub()
{1: 10}

No entanto, fazendo a mesma coisa com umcollections.OrderedDict não funciona:

>>> import collections
>>> class OrdDictSub(collections.OrderedDict):
...     def __init__(self):
...         self[1] = 10
...         
>>> OrdDictSub()
(…)
AttributeError: 'OrdDictSub' object has no attribute '_OrderedDict__root'

Assim, a implementação de OrderedDict usa um__root atributo, que impede a subclasseOrdDictSub de se comportar como oDictSub subclasse. Por quê? Como se pode herdar de um OrderedDict?

questionAnswers(2)

yourAnswerToTheQuestion