[ZODB-Dev] Storing persistent and non-persistent data together

Tim Peters tim at zope.com
Mon Dec 6 11:24:32 EST 2004


[Eric Mangold]
> I'm thinking about using my own _p_ attributes for non-persistent data.
> Then, I can re-set those _p_ attributes inside __setstate__. My testing
> indicates that this will work.
>
> Does anyone see any problems with creating custom _p_ attributes?

Yes:  attribute names starting with "_p_" are reserved for the
implementation.  Nothing is defined about what happens if you try to invent
your own, and they're special-cased all over the place in undocumented,
unadvertised, and unsupported ways (and since they're internal
implementation details, that's appropriate).  So, if you invent one, you're
entirely on your own.

I don't know what your testing consisted of, but I suspect it would have
worked just as well if you had used _v_ attributes instead.  While there's
no guarantee that _v_ attributes persist, there's no guarantee that made-up
_p_ attributes will either.  What do you think using _p_ buys you that _v_
would not?



More information about the ZODB-Dev mailing list