[Zope] Using "Class-Hierarchies" in Zope

J Cameron Cooper jccooper@jcameroncooper.com
Thu, 05 Jun 2003 17:28:12 -0500


>
>
>I've got a question regarding ZClasses and the building of
>Hierarchies using them.
>
>For example I have ZClass A and the ZClasses B and C "derived" from A
>
>What does Zope do if I create a new Instance of B using
>manage_addProduct['myproduct'].B_add(myparam). I know that the B_add
>Script I created is called, but is also the A_add Script called, or can
>I call it in the B_add script, or do I have to reimplement all necessary
>things from A_add in B_add?
>
I usually stay well away from ZClasses, but unless they're *really* 
strange, it should work like in Python products...

The B_add function is explicitly used (and nothing else.) In that 
function you may call an appropriate function from a superclass like::

A.A_add(id, parameters)

but be careful, because product add scripts like to create objects 
rather than initialize. You'll want to call an initialization method 
instead (like you should be using in A_add)::

def B_add(self, id, parameters):
  obj = B(id, parameters)
  A.__init__(obj, id, parameters)
  # everything else, then add to 'obj' to 'self'

In newer Python, you can use the super() call.

             --jcc