Есть ли разница между UserDict и Dict? - PullRequest
3 голосов
/ 18 января 2010

Если я хочу, чтобы класс имел поведение словаря, почему я должен наследовать от dict или UserDict?

1 Ответ

8 голосов
/ 18 января 2010

Вы можете наследовать от dict в любом Python версии 2.2 или выше, но вам придется переопределить каждый интересующий вас метод - например, переопределение __getitem__ будет , а не будет использоваться get, если только вы не переопределите его и т. д. и т. п.

* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * '*' '' '' 'еще один' 'дает еще несколько дополнительных методов: другие методы, предоставляемые "M" -линами "," * 1009 "* подберут и будут использовать ваши собственные переопределения. , Обратите внимание, однако, с документы :

Начиная с Python версии 2.6, это рекомендуется использовать collection.MutableMapping вместо DictMixin.

Новые ABC (абстрактные базовые классы) в модуле collections имеют те же преимущества, что и старые добрые UserDict.DictMixin, более широкое применение и большую регулярность.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...