Edward Muller wrote:
I've done Zope2 stuff in the past, including writing Zope2 Products.

We are working on new hosting software and have decided to use Zope 3.

So we're defining our interfaces and have started to define classes based on those interfaces and I have a question...

The simple todo app (http://worldcookery.com/files/jeffshell-todo/ step1.html) shows the Todo class having three attributes (description, details, done). These are all defined in the interface using various zope.schema definitions.

But ...

The Boring product (http://products.nidelven-it.no/zope3_boring/) does the same thing in the interface with a title attribute. But when it gets to the class definition it uses:

def __init__(self, title='Default boring title'):
   self.title = title

The later is more familiar to me coming from Zope 2. Which is right? If they are both right, which is *more* right wrt Zope 3 ... and why?

They are both right, and it doesn't matter.

The interface says "when you have an instance of this object, you can expect there to be a 'title' attribute". How it got there is not that important.

By the way, if you're starting with Zope 3, get Philipp von Weitershausen's book Web Component Development with Zope 3 (www.worldcookery.com). It'll make a lot of this stuff much more clear.


Zope3-users mailing list

Reply via email to