UserDict.popitem is not LIFOPython

Программы на Python
Anonymous
UserDict.popitem is not LIFO

Сообщение Anonymous »

Рассмотрим следующий фрагмент:

Код: Выделить всё

from collections import UserDict

class D(dict): ...

d = D(foo="bar", baz=42)
print(d.popitem())  # ('baz', 42)

class UD(UserDict): ...

ud = UD(foo="bar", baz=42)
print(ud.data)  # {'foo': 'bar', 'baz': 42}
print(ud.popitem())  # ('foo', 'bar')
Похоже, что порядок сохраняется в реализации UserDict, как и должно быть, поскольку он внутренне использует словарь данных, который упорядочен с версии 3.7.
Почему всплывающий элемент является первым, а не последним?
Я что-то не понимаю? Это ошибка или особенность?
Проверено на версиях 3.13.9 и 3.14.0 в новых средах.

Вернуться в «Python»