Well, technically there is a constructor of sorts - the DTML method or External method that is the target of the "Add" form for your ZClass is basically the equivalent of a Python constructor
I've been adding a method to my ZClasses called 'manage_afterAdd' (and often, 'manage_beforeDelete'), which are called by the ZClass framework, I think. It's really convenient, but I'm not entierly sure they're not reserved for internal uses. I haven't found anything that uses them yet.
Mike Pelletier.
(I've CC'ed the lists on this, since it probably of interest to other folks out there...) Mike, It probably a bad idea to try to use manage_afterAdd as a handy constructor - the manage_afterAdd and manage_beforeDelete methods are currently a lightweight solution for the fact that there is no "event model" in Zope, but often objects will want to perform some extra activities when they are added/deleted (such as add or remove themselves from Catalogs). The manage_afterAdd, in particular, could get you in trouble, since it will also be called whenever an object cut/copied and pasted to a new location. In that case the construction logic would almost certainly not be appropriate, and could actually run without raising an error, but re-initializing and wiping out the existing data in your object in the process. :( In general, the manage_afterAdd and manage_beforeDelete protocol should be thought of as hooks for fixing up or cleaning up the environment of an object on add/delete/cut/copy/paste events (registering and unregistering with Catalogs, etc.). Brian Lloyd brian@digicool.com Software Engineer 540.371.6909 Digital Creations http://www.digicool.com