¿Cómo subclasificar un OrderedDict?

Subclasificando un Pythondict funciona como se espera

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

Sin embargo, haciendo lo mismo con uncollections.OrderedDict No funciona:

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

Por lo tanto, la implementación OrderedDict utiliza un privado__root Atributo, que impide la subclase.OrdDictSub de comportarse como elDictSub subclase ¿Por qué? ¿Cómo se puede heredar de un OrderedDict?

Respuestas a la pregunta(2)

Su respuesta a la pregunta