是ZODB PersistentLists懒洋洋地加载?

时间:2012-01-19 22:50:10

标签: python zodb

如果我加载一个具有多个PersistentList属性的对象 - 列表是否会自动加载?或者ZODB是否等到我访问列表中的元素才能加载它?如果是后者,它是在每次访问元素时加载整个列表,还是只加载列表的一部分?

1 个答案:

答案 0 :(得分:4)

如果您的元素中,则列表本身是从persistent.Persistent继承的,它们将按需加载。

但是,不从Persistent继承的原始类型和类与PersistentList实例一起被加载到内存中。

PersistentList基本上是UserList(和Persistent)的子类,在更改时设置self._p_changed,以便对列表的更改转换为ZODB提交以供其记录。