Hi, below is a snipplet that could be seen as a part of a spreadsheet with getter and setter properties and a way how to dynamically insert function to be used when setting the value of a "cell" instance
import new import inspect class Cell (object): def __init__ (self, initialvalue = 0): self._func = None self.__value = initialvalue def setvalue (self, newvalue): if self._func: self.__value = self._recalculate (newvalue) else: self.__value = newvalue def getvalue (self): return self.__value def _recalculate (self, value): ret_value = self._func (value) return ret_value def delvalue (self): del self.__value value = property(getvalue, setvalue, delvalue, "I'm the 'value' property.") def curry(self, func, *args): self._func = new.function(func.func_code, func.func_globals, argdefs=args) func = property(curry, "I'm the 'func' property.") def func (value, firstcell, secondcell): return value + firstcell.value + secondcell.value cell0 = Cell (10) cell1 = Cell (20) curriedcell = Cell (100) print "uncurried initial %d " % (curriedcell.value) curriedcell.value = 60 print "uncurried set %d " % (curriedcell.value) curriedcell.curry (func, cell0, cell1) curriedcell.value = 62 print "curried set %d " % (curriedcell.value) Is there a better way to do this or am I totally on the wrong way ? Regards Michael -- http://mail.python.org/mailman/listinfo/python-list