Jak podklasować OrderedDict?

Podklasowanie Pythonadict działa zgodnie z oczekiwaniami:

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

Jednak robienie tego samego za pomocącollections.OrderedDict nie działa:

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

W ten sposób implementacja OrderedDict używa prywatnego__root atrybut, który uniemożliwia podklasęOrdDictSub od zachowywania się jakDictSub podklasa. Czemu? Jak można odziedziczyć po OrderedDict?

questionAnswers(2)

yourAnswerToTheQuestion