hasattr returns true because of the way that tmpl_context ("c") is implemented.

https://www.knowledgetap.com/hg/pylons-dev/file/98d7b9278acd/pylons/util.py#l115

You have ContextObj, and AttribSafeContextObj. By default, Pylons uses
AttribSafeContextObj. Looking at the code, you can see that the
__getattr__ method is overridden. This returns an empty string. For
more infoon __getattr__, see here:

http://docs.python.org/reference/datamodel.html#object.__getattr__

Now, hasattr returns true because, no matter what name you put, if it
is not found on the actual context, it will still be "found" since we
are by default returning an empty string.

When you use strict_c, you are using the ContextObj, which does not
override __getattr__, and as such has the default behavior of raising
an exception as well as returning false from hasattr when the
attribute is not found.

--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups 
"pylons-discuss" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to 
[email protected]
For more options, visit this group at 
http://groups.google.com/group/pylons-discuss?hl=en
-~----------~----~----~----~------~----~------~--~---

Reply via email to