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?