[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