[Zope3-Users] Re: [Z3lab-checkins] r24502 - in
z3lab/cpsskins/trunk: . browser/editor browser/skin elements/formats
Stephan Richter
srichter at cosmos.phy.tufts.edu
Wed Jun 29 06:14:54 EDT 2005
On Wednesday 29 June 2005 04:17, Florent Guillaume wrote:
> > +def renderItems(content, start='', repeat='%s', separator='',
> > end='', **kw):
> > + if IMenuItems.providedBy(content):
> > + items_markup = [start]
> > + items_append = items_markup.append
> > + for item in content:
> > + items_append(repeat % (item['url'], item['title']))
> > + items_append(separator)
> > + items_append(end)
> > + return ''.join(items_markup)
> > + else:
> > + return ''
>
> In general in Zope 3 it's my understanding that it's better to do
>
> try:
> c = IMenuItems(content)
> except ComponentLookupError:
> return ''
> ... c used as iterable ...
> return ...
>
> than testing directly for the provided interface, as it gives an
> opportunity for an adapter to do its job. It's probably slower
> though, and maybe not a pattern generally used for marker interfaces.
> Opinions ?
Well, we did not have a solid opinion on this yet. Certainly, the style guide
says nothing about this. But I agree we should start looking up adapters all
of the time, instead of checking for provided interfaces. I think this is
something we should bring up on zope3-dev.
Regards,
Stephan
--
Stephan Richter
CBU Physics & Chemistry (B.S.) / Tufts Physics (Ph.D. student)
Web2k - Web Software Design, Development and Training
More information about the Zope3-users
mailing list