On 6/17/05, Jürgen Herrmann <[EMAIL PROTECTED]> wrote: > > [ Peter Bengtsson wrote:] > > Personally I think one should stay the hell away from transactions. > > They're not for you to fiddle with. > > I understand your question and even though I think it's a bit crazy I > > can see a benefit (simplicity for the programmer). > > > > How about a trickery solution like this: > > > > class CatalogPathAware: > > def index_object(self, *a, **k): > > print self.__class__.__name__, "in for indexing!" > > > > class _MyProduct(CatalogPathAware): > > def __init__(self, id, title=''): > > self.id = id > > self.title = title > > def setTitle(self, title): > > # could be much more complicated > > self.title = title > > > > class MyProduct(_MyProduct): > > def setTitle(self, title): > > _MyProduct.setTitle(self, title) > > self.index_object() > > > > inst = MyProduct("instanceA") > > inst.setTitle('Peter') > > > > print inst.title > > > > > > You would basically rename your existing class from "Whatever" to > > "_Whatever" and continue as before. This does mean however that you > > have to explicitly write a function for each setter. > > > hmm, i can't see how this would help. if i call index_object in every > attribute getter method, the indexing is done possibly several times, > unnecessary and (cpu)time consuming. > Writes happen a lot less often but they also cost a lot more. It'd be nice to be able to hotwire the parentless class so that it magically "wraps" all functions that match on::
re.compile('set[A-Z]\w+') It would be hard to find out what the functions are, eg:: class MyProduct(_MyProduct): def __init__(self, *a, **k): _MyProduct.__init__(self, *a, **k) for fun in dir(_MyProduct): if camel_setters_regex.findall(fun): print "create a wrapping method called %s" % fun How to magically create a method upon itself with an arbitary name is something I don't know how to do but it's not impossible because I know that Archetypes (cmf, plone) does it. > juergen > _______________________________________________________________________ > > >> XLhost.de - eXperts in Linux hosting << > > Juergen Herrmann > Weiherweg 10, 93051 Regensburg, Germany > Fon: +49 (0)700 XLHOSTDE [0700 95467833] > Fax: +49 (0)721 151 463027 > > ICQ: 27139974 - IRC: [EMAIL PROTECTED] > WEB: http://www.XLhost.de > -- Peter Bengtsson, work www.fry-it.com home www.peterbe.com hobby www.issuetrackerproduct.com _______________________________________________ Zope maillist - Zope@zope.org http://mail.zope.org/mailman/listinfo/zope ** No cross posts or HTML encoding! ** (Related lists - http://mail.zope.org/mailman/listinfo/zope-announce http://mail.zope.org/mailman/listinfo/zope-dev )