[Zope] Finding an object in a folder

Chris Withers chris at simplistix.co.uk
Wed May 25 16:03:13 EDT 2005


Dieter Maurer wrote:
> By the way, it is as nasty in Python as it is in DTML.

I agree with we disagree, I hopethat doesn't cause offence ;-)

>>Worse still, you use hasattr with ZODB... hastattr swallows all 
>>exceptions, including ConflictErrors, and especially in this example 
>>that would be a bad thing...
> 
> Again, the correct way to approach this problem is not
> to ban "hasattr" from thousands of places
> but to monkey patch "__builtin__.hasattr"
> such that it behaves in a Zope compatible way.

It doesn't matter what is correct and what isn't correct here, you're 
handing out advice that will break when a person tries it and they least 
expect it to break. That's not a nice thing to do...

> I strongly argue against it. Fix "hasattr" in the Zope context,
> instead!

Make it so! :-)
>>if getattr(thefolder.aq_inner.aq_explicit,the_id,None):
> 
> You are aware that this is in general *NOT* an emulation
> of "hasattr".

I didn't say it was ;-)

> It may fail e.g. for properties.

How would it fail for properties?

> And it would be so easy to fix "hasattr" ;-)

then why haven't you done it? ;-)

Chris

-- 
Simplistix - Content Management, Zope & Python Consulting
            - http://www.simplistix.co.uk



More information about the Zope mailing list