[CMF-checkins] CVS: CMF/CMFDefault - MembershipTool.py:1.43

Casey Duncan casey at zope.com
Tue Feb 10 17:13:48 EST 2004


On Tue, 10 Feb 2004 22:30:52 +0100
Florent Guillaume <fg at nuxeo.com> wrote:

> Casey Duncan wrote:
> >>You're right about the aq_base, but I'll code it differently:
> >>   if hasattr(aq_base(members), id):
> >>     folder = getattr(members, id)
> >>     ...
> > 
> > Except that hasattr swallows conflict errors... 8^/
> 
> It does ? Could you expand on this, that's news to me...

Try this on for size:

% python
Python 2.3.3 (#1, Jan 20 2004, 22:38:52) 
[GCC 3.2.2 [FreeBSD] 20030205 (release)] on freebsd5
Type "help", "copyright", "credits" or "license" for more information.
>>> class C:
...     def __getattr__(self, x): 
...             raise SystemExit, 'Aieee!'
... 
>>> c = C()
>>> hasattr(c, 'caffeine')
False
>>> getattr(c, 'caffeine')
Aieee!
%

hasattr swallows all exceptions, including SystemExit as you can see.

-Casey



More information about the CMF-checkins mailing list