2011-07-11 12 views
7

Durante algunas operaciones con el conjunto me encontré con este error en Python:¿Qué es una lista instrumentada en Python?

TypeError: unhashable type: 'InstrumentedList' 

¿Qué es un InstrumentedList en Python? Solo encontré algunas referencias relacionadas con SQLAlchemy. ¿Es esto una implementación de listas SQLAlchemy o algo así?

Por cierto, sucede mientras se hace:

set(self.some_list) 

donde

print type(self.some_list) # <type 'list'> 
+1

Ese error no está causado por el tipo de 'self.some_list', puede ser iterable, sino por el tipo de sus elementos. – delnan

+2

Está intentando convertir una lista en un objeto conjunto. Dado que es una lista de objetos 'InstrumentedList' que no son hashables, no puede convertirlos. Ver http://docs.python.org/glossary.html?highlight=hashable – rubik

+0

@delnan: No era consciente de eso. ¡Gracias! Me diste una respuesta a una pregunta que no hice, pero cuya respuesta era exactamente lo que necesitaba. Buenos sentidos! ;) – Aufwind

Respuesta

9

Sí, SQLAlchemy lo utiliza para aplicar un objeto de lista como la que es consciente de inserciones y deleciones de objetos relacionados con un objeto (a través de uno-a-muchos y muchos- muchas relaciones).

Cuestiones relacionadas