[Zope-dev] is an object in a folder

Paul Winkler pw_lists at slinkp.com
Tue Aug 24 11:24:58 EDT 2004


On Tue, Aug 24, 2004 at 03:25:17PM +0200, Florent Guillaume wrote:
> I'd like to add a method like
> 
>     def hasObject(self, id):
>         """Test if an object is in the current object."""
>         for o in self._objects:
>             if o['id'] == id:
>                 return 1
>         return 0
> 
> to ObjectManager.
> 
> This would bring it in line with BTreeFolder2 (who already has an 
> hasObject method) and we could then always use the most efficient method 
> to test if a folder has a given subobject id.
> 
> Opinions ?

I like having such a method, but let's not iterate over all
the sub-objects. Why not this?

from Acquisition import aq_base
...
    def hasObject(self, id):
        """Test if an object is in the current object.
        """
        if hasattr(aq_base(self), id):
            return 1
        return 0

The same idiom is used in ObjectManager.checkValidId, FWIW.

-- 

Paul Winkler
http://www.slinkp.com


More information about the Zope-Dev mailing list