Jak zauważono w komentarzu przez AChampion, można użyć MutableMapping
:
class Actor(Enum):
# ...Actor enum menbers...
class Location:
# ...Location class body...
class MapActor2Location(OrderedDict, MutableMapping[Actor, Location]):
pass
Uzupełnienie dla ludzi takich jak ja, którzy nie mają używał modułu typing
przed: pamiętaj, że definicje typów używają składni indeksowania() bez nawiasów. Początkowo próbował coś takiego:
class MyMap(OrderedDict, MutableMapping([KT, VT])): pass
(! Zwróć uwagę na obcych nawiasów wokół [KT, VT]
)
Daje to co uważam za dość mylące błąd:
TypeError: Can't instantiate abstract class MutableMapping with abstract methods __delitem__, __getitem__, __iter__, __len__, __setitem__
Ale jeśli to zrobię, to jak to jest YourDict a OrderedDict? –
Możesz użyć 'typing.MutableMapping', jeśli potrzebujesz określonego typu dla OrderedDict, powinieneś go stworzyć' class OrderedDictType (OrderedDict, MutableMapping [KT, VT]) ' – AChampion
@ AChampion powinieneś zrobić odpowiedź – Seanny123