type strong specify parameter force checking python python-3.5 typing

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)])