2011-07-11 163 views
7

在一些操作集我遇到了这个错误在Python:什么是Python中的InstrumentedList?

TypeError: unhashable type: 'InstrumentedList' 

什么是一个Python InstrumentedList?我只找到了一些与SQLAlchemy相关的参考。这是一个SQLAlchemy实现的列表或什么?

顺便说一句,它发生,而这样做:

set(self.some_list) 

其中

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

该错误不是由'self.some_list'的类型引起的 - 它可以是任何可迭代的 - 但是由它的项目类型引起。 – delnan

+2

您正试图将列表转换为设置对象。由于它是不可排列的'InstrumentedList'对象的列表,因此不能转换它们。请参阅http://docs.python.org/glossary.html?highlight=hashable – rubik

+0

@delnan:我没有意识到这一点。谢谢!你给了我一个我没有问的问题的答案,但是他的答案正是我所需要的。好感官! ;) – Aufwind

回答

9

是,SQLAlchemy的使用它来实现一个列表类似的对象,它是知道的插入和相关对象的缺失的一个对象(通过一个一对多和多对一多对多关系)。