Python中的InstrumentedList是什么?

16 投票
2 回答
21822 浏览
提问于 2025-04-16 21:17

在进行一些集合操作时,我在Python中遇到了这个错误:

TypeError: unhashable type: 'InstrumentedList'

什么是InstrumentedList?我只找到了一些与SQLAlchemy有关的资料。这是SQLAlchemy对列表的实现吗,还是别的什么?

顺便提一下,这个错误发生在我执行:

set(self.some_list)

的时候

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

2 个回答

10

是的,这个是SQLAlchemy的一个接口部分。这里有个类的参考链接:

https://docs.sqlalchemy.org/en/20/orm/collection_api.html#sqlalchemy.orm.collections.InstrumentedList

14

是的,SQLAlchemy用它来实现一种像列表一样的对象,这种对象能够感知与某个对象相关的其他对象的添加和删除(通过一对多和多对多的关系)。

撰写回答