[ZDP] BackTalk to Document The Zope Book (2.5 Edition)/Extending Zope

nobody@nowhere.com nobody@nowhere.com
Mon, 02 Sep 2002 10:34:55 -0400


A comment to the paragraph below was recently added via http://www.zope.org/Documentation/Books/ZopeBook/current/CustomZopeObjects.stx#2-59

---------------

    Writing Python base classes is easy, but it involves a few installation
    details. To create a Python base class you need access to the
    filesystem. Create a directory inside your *lib/python/Products*
    directory named *AnimalBase*. In this directory create a file named
    *Animal.py* with these contents::

      class Animal: 
          """
          A base class for Animals
          """ 

          _hungry=0

          def eat(self, food, servings=1):
              """
              Eat food
              """
              self._hungry=0

          def sleep(self):
              """
              Sleep
              """
              self._hungry=1

          def hungry(self):
              """
              Is the Animal hungry?
              """
              return self._hungry

      % Anonymous User - Sep. 2, 2002 10:34 am:
       Let's suppose I need an __init__ method for class Animal: I found that this __init__ method, if present, is
       automatically called when I create an instance of
       the ZClass that "wraps" (inherits from) Annimal. But what if __init__ has parameters? Where can I pass these
       parameters from? I guess the right place is from the Animal_add dtml method that acts as a constructor, but
       what's the dtml for doing so? Please help!