Ответ 1
Как отмечено в комментарии от AChampion, вы можете использовать MutableMapping
:
class Actor(Enum):
# ...Actor enum menbers...
class Location:
# ...Location class body...
class MapActor2Location(OrderedDict, MutableMapping[Actor, Location]):
pass
Добавление для таких людей, как я, которые ранее не использовали модуль typing
: обратите внимание, что в определениях типов используется синтаксис индексирования ([T]
) без. Сначала я попробовал что-то вроде этого:
class MyMap(OrderedDict, MutableMapping([KT, VT])): pass
(Обратите внимание на посторонние круглые скобки вокруг [KT, VT]
!)
Это дает то, что я считаю довольно запутанной ошибкой:
TypeError: Can't instantiate abstract class MutableMapping with abstract methods __delitem__, __getitem__, __iter__, __len__, __setitem__