подклассов питона dict
работает, как ожидалось:Как подкласс OrderedDict?
>>> class DictSub(dict):
... def __init__(self):
... self[1] = 10
...
>>> DictSub()
{1: 10}
Однако, делать то же самое с collections.OrderedDict
не работает:
>>> import collections
>>> class OrdDictSub(collections.OrderedDict):
... def __init__(self):
... self[1] = 10
...
>>> OrdDictSub()
(…)
AttributeError: 'OrdDictSub' object has no attribute '_OrderedDict__root'
Таким образом, реализация OrderedDict использует личный __root
atribute, что предотвращает подкласс OrdDictSub
от поведения, как подкласс DictSub
. Зачем? Как можно наследовать от OrderedDict?
Почему downvote? – EOL