Как было отмечено в комментарии по 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__
Но если я сделаю это, как это YourDict OrderedDict? –
Вы можете использовать 'typing.MutableMapping', если вам нужен определенный тип для OrderedDict, вам нужно будет создать его' class OrderedDictType (OrderedDict, MutableMapping [KT, VT]) ' – AChampion
@AChampion вы должны сделать ответ – Seanny123