Jeremy Hylton wrote: > It has been possible to inherit from dictionary since Python 2.2, but > it is not possible for a persistent object and it would not do what > you expect even if it were possible. A persistent object has a custom > C layout and so does dict, so it is not possible to have them both as > base classes. (TypeError: multiple bases have instance lay-out > conflict. (I don't know why there is a hypen in lay-out.)) If it > were possible, it wouldn't work anyway. If you inherit from dict and > override its builtin methods, like __setitem__, your overridden method > will be ignored by C code using methods like PyDict_SetItem().
Thanks for the explanation. > On the other hand, I think that this omission is just an oversight. It > would probably be a good idea to change PersistentDict/Mapping to use > the DictMixin instead of UserDict. I'd have to take a look at the mixin before I can come up with an educated answer. -- Thomas _______________________________________________ For more information about ZODB, see the ZODB Wiki: http://www.zope.org/Wikis/ZODB/ ZODB-Dev mailing list - ZODB-Dev@zope.org http://mail.zope.org/mailman/listinfo/zodb-dev