Wie kann ich ein OrderedDict unterordnen?

Unterklassen einer Pythondict funktioniert wie erwartet:

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

Das Gleiche tun Sie jedoch mit acollections.OrderedDict funktioniert nicht:

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

Daher verwendet die OrderedDict-Implementierung eine private__root atribute, was die Unterklasse verhindertOrdDictSub sich wie die benehmenDictSub Unterklasse. Warum? Wie kann man von einem OrderedDict erben?

Antworten auf die Frage(2)

Ihre Antwort auf die Frage