[Zope] Multiple inheritance and tree data structure problems
peter sabaini
sabaini@inode.at
Fri, 02 Aug 2002 10:13:07 +0200
take a look at
http://debian.acm.ndsu.nodak.edu/doc/python-extclass/ExtensionClass.html
search for 'inheritedAttribute'
Manuel_Montejo@apb.es wrote:
> Hi,
>
> I'm developing a Zope product, ServiceProduct, that behaves as a
Node in a
> Tree data structure.
>
> The class hierachy is the following [<--- : extends ; <- - - :
> implements]
>
> Base <---Tree <- - -TreeImpl
> Base <---- TreeNode <- - - TreeNodeImpl
> Base <---- Service
>
> Implicit,Persistent,RoleManager,ObjectManager,PropertyManager,Item <----
> ProductBase
> ProductBase, TreeNodeImpl<---- ServiceProduct
> TreeNode<- - - ServiceProduct
> Service<- - - ServiceProduct
>
> So, when I create an new instance of ServiceProduct using the ZMI I
found a
> problem with the constructor. The
> error message is
> "unbound method __init__() must be called with instance as first
> argument"
> and the code is
>
> def __init__(self, id):
> ProductBase.__init__(self,id,'')
> try:
> TreeNodeImpl.__init__(self,id)
> except Exception, e:
> print 'Problems with TreeNodeImpl constructor', e
> # do TreeNodeImpl initialization here if fails
> self.setNombre( id )
> self.parentNode = None
> self.children = []
> self.tree = None
>
> I hope that doing the TreeNodeImpl initialization in the except
clause will
> solve this problem.
>
> Then, I add child ServiceProduct objects to the tree hierarchy but it
seems
> that the references between parent
> and child objects change when new calls to the object are done (I use a
> DTML page for displaying hierarchy info).
>
> Even worse, the ProductBase has a method hashCode that shows instance
info
>
> def hashCode(self):
> id = str( self )
> id = id.replace( '<', '_')
> id = id.replace( '>', '_')
> id = id.replace( ' ', '_')
> return id
>
> returns two different results when is called from a DTML page, (sometimes
> the first and other times the second),
> BUT I have created only one instance of the object.
>
> Finally, I have tested the TreeImpl, TreeNodeImpl outside Zope and it
works
> without any problems.
>
> Any idea of where is the problem? The 'constructor problem' is related to
> the 'references losing' problem?
> Any help with will be apreciated.
>
> Best regards,
>
> Manu
>
>
>
>
>
>
>
> _______________________________________________
> Zope maillist - Zope@zope.org
> http://lists.zope.org/mailman/listinfo/zope
> ** No cross posts or HTML encoding! **
> (Related lists -
> http://lists.zope.org/mailman/listinfo/zope-announce
> http://lists.zope.org/mailman/listinfo/zope-dev )
>
>