Если я хочу, чтобы класс имел поведение в словаре, почему я должен унаследовать от dict
или UserDict
?Есть ли разница между UserDict и Dict?
ответ
Вы можете наследовать от dict
в любом Python, что это версия 2.2 или лучше, но вы должны переопределить каждый метод интерес - например, ваше переопределение __getitem__
будет не быть использованы get
если не вам также переопределить этот и т. д. и т. д.
UserDict.DictMixin
смесь в восходит гораздо дальше, и позволяет реализовать лишь несколько методов: другие методы, так как поставляются смесь-в, будет забрать и использовать свое собственное переопределение. Заметим, однако, из the docs:
Начиная с Python версии 2.6, то рекомендуется использовать collections.MutableMapping вместо DictMixin.
Новые ABCs (абстрактные базовые классы) в collections
модуле имеют много те же преимущества, что и старый добрый UserDict.DictMixin
, более широкое применение и более регулярностью.
- 1. Разница между не dict и not dict == {}
- 2. Разница между map и dict
- 3. Python: UserDict
- 4. Есть ли разница между $ @ и "$ @"?
- 5. В чем разница между dict() и {}?
- 6. разница между набором python и dict «внутренне»
- 7. python: разница между списком (dict) и dict.keys()?
- 8. В чем разница между struct и dict?
- 9. разница между Dict (GroupBy) и GroupBy
- 10. разница между списком() и Dict() с генераторами
- 11. Разница между namedtuple и замороженным dict
- 12. разница между Dict [пункт] .append (слово) и Dict [пункт] + [слово]
- 13. Есть ли разница между [NSMutableDictionary dictionaryWithDictionary:] и mutableCopy?
- 14. разница между 'есть' и '=='
- 15. В C# есть ли разница между + = и = +?
- 16. Есть ли разница между CONCAT(), «=» и «+ =»
- 17. Есть ли разница между `ListView.invalidateViews()` и 'Adapter.notifyDataSetChanged()'?
- 18. Есть ли разница между GUID и UUID?
- 19. Есть ли разница между UserLocalServiceUtil.addRoleUser и RoleLocalServiceUtil.addUserRole?
- 20. Есть ли разница между Set и Set?
- 21. Есть ли разница между self.current_user и @current_user?
- 22. Есть ли разница между $() и `` в Bash?
- 23. Есть ли разница между .JPG и .jpg?
- 24. Есть ли разница между атрибутом и атрибутом = ""
- 25. Есть ли разница между JAVA и JSP
- 26. Есть ли разница между травлением и сериализацией?
- 27. Есть ли разница между «! =» И «! ~» В Ruby?
- 28. Есть ли разница между строкой (x) и ''
- 29. Есть ли разница между (local), '.' и localhost?
- 30. Есть ли разница между gluLookAt() и glFrustum()?
Каков самый низкий общий знаменатель для версий Python, который вы должны поддерживать? –