Paul Winkler wrote:
you don't :)
it's a convenience (less stuff to type if you access the object a lot)
and/or an optimization (getSomeObject might be expensive).


I believe that his example referred to the case where the intermediate object must be called before path traversal can continue. Since the result of a path expression is called, if possible, the two-step define gets the job done. With prefixes, the simpler "here/getSomeObject/call:/someAttribute" gets the job done.


       * Why does tal:content="request/form/items" don't get me the
       "items" object that I'm expecting

you lost me there.

"request/form" is a mapping, and traversal tries attribute access first, so you get "request.form.items()" rather than "request.form['items']".


Hm. Doesn't really matter - ObjectManager makes them equivalent
anyway (except that some keys cannot be spelled as attributes, e.g. foo['bar.html']).

Not quite. Attribute access invokes acquisition, while item access never does, so getattr(foo, 'bar.html') may succeed where foo['bar.html'] fails.


Cheers,

Evan @ 4-am



_______________________________________________
Zope-Dev maillist - [EMAIL PROTECTED]
http://mail.zope.org/mailman/listinfo/zope-dev
** No cross posts or HTML encoding! **
(Related lists - http://mail.zope.org/mailman/listinfo/zope-announce
http://mail.zope.org/mailman/listinfo/zope )

Reply via email to