Dieter Maurer escribió:
Garito wrote at 2006-10-18 16:15 +0200:
...
How can I control the way an attribute of a product is readed? __getattr__? __getattribute__?

A "product" is an extension mechanism for Zope. Usually, a
"product" does not have attributes (you are interested in).

But inside your product you may have defined classes
instances of which you place into the Zope hierarchy
(<http://www.dieter.handshake.de/pyprojects/zope/book/chap3.html>
speaks about site building objects).

The standard Python way to access their attributes ("__getattr__"
and "__getattribute__") will work but has caveats: It is *very* easy
to create infinite loops with it and their "self" with not be
acquisition wrapped.

The Zope specific safer way is to implement "__bobo_traverse__".
Both the publisher as well as "[un]restrictedTraverse" (which
is internally used by TALES path expressions) use "__bobo_traverse__"
when defined. However, Python's "getattr" will not use it.



Hi, Dieter!

How can I create an accessor to read (not to write) and preprocess all properties?

Thanks!

--
Mis Cosas
http://blogs.sistes.net/Garito


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

Reply via email to