Вы можете создать подкласс ABC (абстрактный базовый класс) collections.Mapping
(или collections.MutableMapping
), если вы также хотите разрешить коду, использующему ваши экземпляры, изменять симулированный / упакованный словарь, например, с помощью индексированного назначения,pop
и т. Д.).
Если вы сделаете это, то, как я указывал в документах, косвенно, методы, которые вам нужно реализовать, являются
__len__
__iter__
__getitem__
(для Mapping
) - вы должны также реализовать
__contains__
, потому что, передавая команду, которую вы упаковываете, это можно сделать намного быстрее, чем при применении итеративного подхода, который ABC должен был бы применитьв противном случае.
Если вам нужно указать MutableMapping
, вам также нужно реализовать еще 2 метода:
__setitem__
__delitem__