[pyar] NamedTuple de tipo generico?
marcos hipe
marcoshipe en gmail.com
Jue Ene 4 13:10:40 ART 2018
Buenas!
Estuve indagando en el tema de type hints y me encontré con un problema,
quería hacer una NamedTuple que tenga un ítem de un tipo genérico, pero si
hago eso me tira el indescifrable error: "TypeError: metaclass conflict:
the metaclass of a derived class must be a (non-strict) subclass of the
metaclasses of all its bases"
Estoy haciendo algo mal?
El código que use es:
class State(abc.ABC):
pass
State_T = TypeVar('State_T', bound=State)
class Node(Generic[State_T], NamedTuple):
state: State_T
path: List[str]
cost: int
O sea que tengo un Node que tiene un ítem que es de tipo State o derivado.
Si, quizás un poco quisquilloso con querer eso, cuando si lo hago con una
clase común anda perfecto:
class State(abc.ABC):
pass
State_T = TypeVar('State_T', bound=State)
class Node(Generic[State_T]):
def __init__(self, state: State_T, path: List[str], cost: int):
self.state: State_T = state
self.path: List[str] = path
self.cost: int = cost
Ya en mi código lo deje así con una clase común, pero me quede con la duda
de si estoy haciendo algo mal o si eso debería andar
Saludos!
------------ próxima parte ------------
Se ha borrado un adjunto en formato HTML...
URL: <http://listas.python.org.ar/pipermail/pyar/attachments/20180104/23b0d1f3/attachment.html>
Más información sobre la lista de distribución pyar