[ZODB-Dev] Re: getting the object ID (_p_oid attribute)
Robert Gravina
robert at gravina.com
Mon Jun 26 15:11:34 EDT 2006
On 2006/06/27, at 3:49, Benji York wrote:
> Robert Gravina wrote:
>> I just tried loading a persisted object interactively and noticed
>> that although the _p_oid doesn't print out as anything (and hence
>> I always thought it was empty in my debugging prints), it isn't
>> actually None! Can anyone explain this? (here "p" is my persisted
>> object)
>> >>> p._p_oid
>> '\x00\x00\x00\x00\x00\x00\x00\x08'
>> >>> print p._p_oid
>> >>> p._p_oid is None
>> False
>
> What would you expect to see if you printed out seven null
> characters and a backspace?
Hahaha - that's a good point! I was expecting IDs to look, well,
something like "asdf23asdf". Well, anyway thankyou! I seemed to have
solved this problem. I was able to write a __eq__ function like this:
def __eq__(self, other):
if isinstance(other, <name of my class>):
if hasattr(other,"_p_oid") and other._p_oid != None and
(other._p_oid == self._p_oid):
return True
else:
return False
and now can compare objects for equality after the (Twisted) client
edits them and sends them back.
Anyway, thanks again.
Robert
More information about the ZODB-Dev
mailing list