Могу ли я расширить синтаксис в python для понимания dict для других dicts, таких как OrderedDict в модуле collections
или моих собственных типов, которые наследуют от dict
?
Просто переупорядочение имени dict
явно не работает, синтаксис {key: value}
по-прежнему дает вам простой старый dict для понимания и литералов.
>>> from collections import OrderedDict
>>> olddict, dict = dict, OrderedDict
>>> {i: i*i for i in range(3)}.__class__
<type 'dict'>
Итак, если возможно, как бы я это сделал? Это нормально, если он работает только в CPython. Для синтаксиса я предполагаю, что попробую его с префиксом O{k: v}
, как у нас на r'various' u'string' b'objects'
.
note: Конечно, мы можем использовать выражение генератора вместо этого, но мне больше интересно узнать, как хакерский питон в терминах грамматики.