[Zope-dev] To the brave folks trying Zope HEAD...
Sidnei da Silva
sidnei at awkly.org
Wed Dec 10 15:36:37 EST 2003
On Wed, Dec 10, 2003 at 03:26:03PM -0500, Jeremy Hylton wrote:
| Actually, there are two equally valuable clues from the debugger
| session:
|
| object : <class 'Products.Formulator.StandardFields.LabelField'>
| type : ExtensionClass.ExtensionClass
| refcount: 7
| address : 0x8503bec
|
| If I understand correctly: LabelField is a class that inherits from
| Persistence and some other object has a reference to it that isn't via
| __class__.
Makes sense to me. How can I find the referencing object?
| >>> persistent.Persistent._p_jar
| <attribute '_p_jar' of 'persistent.Persistent' objects>
|
| If you ask a class for an attribute, it seems you can get a descriptor
| back. I vaguely recall Guido saying that this was the intended behavior
| last time I asked about it.
Yes, I've learnt this the hard way, when Jim tried to explain me and I
kept banging my head against the wall :)
| 'jar' gives:
| object : <attribute '_p_jar' of 'persistent.Persistent' objects>
| type : getset_descriptor
| refcount: 2
| address : 0x40621e6c
|
| Thus, asking for the class's _p_jar gives the descriptor back. In ZODB4
| I hacked around this by requiring that the value of _p_jar be None or a
| string. Would there be any objection to having the same requirement in
| ZODB3?
I have no clue about the implications of this, but it seems like a
reasonable constraint to me.
--
Sidnei da Silva <sidnei at awkly.org>
http://awkly.org - dreamcatching :: making your dreams come true
http://plone.org/about/team#dreamcatcher
MS-DOS, you can't live with it, you can live without it.
-- from Lars Wirzenius' .sig
More information about the Zope-Dev
mailing list