[ 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. 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: #XLhost@quakenet WEB: http://www.XLhost.de