I don't understand property behawiour in code bellow (I am not
experienced programmmer, so I could missed something obivious).

In example bellow: "list_items1" works as I expected - it returns
list of objects from catalog but "list_items2" fails - I get Attribute Error or if it finds "items" through acquisition it returns this object.

But, if I uncomment line "return [1,2,3]" in code below, then both
functions return the same value - list [1,2,3].

Search of "catalog" by acquisition messes with class attribute lookup?

class Storage (SimpleItem):
    """ see IStorage interface """


    title = FieldProperty(IStorage['title'])
    description = FieldProperty(IStorage['description'])

    def _get_items(self):
        """ Return list of items in storage (unsorted). """
        #return [1,2,3]
        return [x.getObject() for x in self.catalog(storage=self.title)]

    items = property(_get_items)

    def list_items1(self):
        """ test """
        return self._get_items()

    def list_items2(self):
        """ test """
        return self.items

Piotr Chamera
Zope maillist  -  Zope@zope.org
**   No cross posts or HTML encoding!  **
(Related lists - http://mail.zope.org/mailman/listinfo/zope-announce
http://mail.zope.org/mailman/listinfo/zope-dev )

Reply via email to