On Fri, 2004-03-05 at 16:57, Dieter Maurer wrote:
3) is it possible to disable caching of some object?
No, but you can (in most cases) flush it again by calling its "_p_deactivate" method.
You can always do it by assigning "None" to "_p_changed", but this is highly unsafe. You should not do it (unless you really know what you are doing).
Another was of saying this is that the cache performs an important role in maintaining object identity. It's not possible to use a persistent object without using a cached version of it. If you think you need to disable caching, you should probably say something more about what you are trying to do.
4) when an _v_ attribute is removed, what code of the object/attribute itself is called?
The object's "__del__" method (if defined). This means the object that was bound to the "_v_" attribute not the object that had the "_v_attribute".
The setattr hook in cPersistence.c is called when an attribute is removed (del obj.attr). An __del__() method would only be called if the last reference to the object was also deleted. And __del__ is to be avoided whenever possible. Jeremy