[Zope] Messing with the namespaces stack [Was: (no subject)]

Shane Hathaway shane@digicool.com
Fri, 30 Jun 2000 16:30:58 -0400


"Jeff K. Hoffman" wrote:
> Therefore, when index_html looks for header, the content folder is
> searched, then the home folder, then the lowres folder, then the home
> folder. Unfortunately, for our example, the header is found in the search
> of the home folder, and we never make it to the lowres folder.

Oops--thanks for pointing that out.  I sometimes wonder, however, why
it was set up this way.  Except for speed concerns, I see no reason
why, if we set up the algorithm a different way, it couldn't search
from right to left.  A simple approach would be like this:

def findattr(obj, name):
  while (obj is not None):
    base = getattr(obj, 'aq_base', obj)
    if hasattr(base, name):
      return getattr(obj, name)
    obj = getattr(obj, 'aq_parent', None)
  raise AttributeError, name

> Hope this makes sense. Acquisition is not one of the things I have become
> good at explaining, yet. The slides from Jim's Acquisition Algebra talk is
> about the best source of information on this subject.

Of course, Jim would probably look at my example and want to hit me. 
He likes things to be optimized.  :-)

Shane