Tcl style traces
Peter Otten
__peter__ at web.de
Wed Jan 28 08:35:01 EST 2004
Derek Fountain wrote:
> Does Python have something similar to Tcl style tracing? That is, the
> ability to call a subroutine when a variable is written to or read from?
Would it be sufficient to keep track of attribute changes? Then you could
try something like
class TraceChanges(object):
def __init__(self, name, onChange):
# bypass the tracking mechanism
object.__setattr__(self, "name", name)
object.__setattr__(self, "changed", onChange)
def __setattr__(self, name, value):
object.__setattr__(self, name, value)
self.changed(self, name, value)
def changed(sender, name, value):
# could also be a method of TraceChanges
print "%s.%s changed to %s --> updating canvas" % (sender.name, name,
value)
rectangle = TraceChanges("rectangle", changed)
rectangle.color = "blue"
text = TraceChanges("text", changed)
text.color = "red"
text.font = "Helvetica"
Peter
More information about the Python-list
mailing list