[Zope3-Users] Re: Newbie Question
Edward Muller
edwardam at interlix.com
Sat Feb 24 10:05:18 EST 2007
On Feb 23, 2007, at 5:14 PM, Philipp von Weitershausen wrote:
> 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?
>
> With respect to interfaces, it's always a good idea to have your
> objects, incl. newly created ones, comply to the interfaces they
> promise to implement. In particular, this means that they should
> have default values for the schema attributes. Frameworks like
> zope.formlib also happen to rely on that.
>
> My book also happens to show class-level attributes a lot. Lately
> I've come to prefer initializing attributes in the constructor
> (__init__) instead, though. It's really a matter of taste, in the
> end. If you like initializing them in the constructor, go with that...
By initializing attributes in the constructor do you mean:
A)
class IA():
""" The Letter A """
letter = zope.schema.TextLine(title="The Letter A")
class A():
implements(IA)
def __init__(self,...):
letter = A
or
B)
class A()
implements(IA)
def __init__(self,...):
self.letter = A
>
>
> --
> http://worldcookery.com -- Professional Zope documentation and
> training
> Next Zope 3 training at Camp5: http://trizpug.org/boot-camp/camp5
>
> _______________________________________________
> Zope3-users mailing list
> Zope3-users at zope.org
> http://mail.zope.org/mailman/listinfo/zope3-users
--
Edward Muller
Interlix, LLC
Owner
Zope, Plone & Zimbra Hosting
phone: +1.417.862.0573
fax: +1.770.818.5437
--
More information about the Zope3-users
mailing list