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.
Evan @ 4-am
Zope-Dev maillist - [EMAIL PROTECTED]
** No cross posts or HTML encoding! **
(Related lists - http://mail.zope.org/mailman/listinfo/zope-announce