Raymond Hettinger <raymond.hettin...@gmail.com> added the comment:
> Maybe it's considered undefined behavior for a subclass to use > a method of one of its bases which it has overriden. In general, it's true that if OrderedDict is a subclass of dict, then it would have no defense against someone making a direct call to the dict base class. Such a call should be expected to violate the OrderedDicts invariants. > it's a complete coin toss on whether one of the many internal > API function will set an attribute or name via PyDict_SetItem > or PyObject_SetItem. Not really. The CPython source is supposed to only call PyDict_SetItem when the target is known to be an exact dictionary. If you find a case where that isn't true, please file a bug report and we'll fix it. > It might be more appropriate to start a new issue for this, but I'll > leave > that decision to somehow who would know for sure. No need. We've known about this sort of problem for years. See https://bugs.python.org/issue10977 for example. There isn't really much we could do about it without causing other issues that would be worse. FWIW, this doesn't seem to be a problem in practice. Further, OrderedDict is expected to become less relevant now that regular dicts are order preserving. ---------- _______________________________________ Python tracker <rep...@bugs.python.org> <https://bugs.python.org/issue25410> _______________________________________ _______________________________________________ Python-bugs-list mailing list Unsubscribe: https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com