strong - cómo escribir colecciones de pistas.OrderedDict a través del módulo de escritura de Python 3.5
python type checking (1)
Como se señaló en un comentario de AChampion, puedes usar MutableMapping
:
class Actor(Enum):
# ...Actor enum menbers...
class Location:
# ...Location class body...
class MapActor2Location(OrderedDict, MutableMapping[Actor, Location]):
pass
Anexo para personas como yo que no han usado el módulo de typing
antes: tenga en cuenta que las definiciones de tipo usan la sintaxis de indexación ( [T]
) sin paréntesis. Al principio intenté algo como esto:
class MyMap(OrderedDict, MutableMapping([KT, VT])): pass
(¡Note los paréntesis extraños alrededor de [KT, VT]
!)
Esto da lo que considero un error bastante confuso:
TypeError: Can''t instantiate abstract class MutableMapping with abstract methods __delitem__, __getitem__, __iter__, __len__, __setitem__
Quiero usar un OrderedDict donde la clave es un Enum y donde el elemento es una clase determinada.
¿Cómo uso el módulo de escritura para sugerir esto? ¿Cuál es el análogo a este insinuado namedtuple ::
Move = typing.NamedTuple(''Move'', [(''actor'', Actor), (''location'', Location)])