Kent Johnson wrote: > One more reference: > http://aspn.activestate.com/ASPN/Cookbook/Python/Recipe/252151 > > This appears as recipe 6.6 in the second edition of the printed cookbook. > > Kent
Thanks Kent. I guess I got into deep waters. It's a shame though that you can not do this in a simple manner, considering python simplifies so many other chores. To continue with your useful class : class CallCounter: def __init__(self, delegate): self._delegate = delegate self.calls = 0 def __getattr__(self, name): value = getattr(self._delegate, name) if callable(value): self.calls = getattr(self, 'calls') + 1 print 'name:', name, 'calls:',getattr(self,'calls') return value >>> a = CallCounter(list()) >>> a name: __repr__ calls: 1 [] >>> a name: __repr__ calls: 2 [] >>> name: append calls: 3 ########## a.append(3) name: append calls: 4 The line marked with ########## appeared as I was typing a.append so I guess IDLE is accessing the class as I write the command in order to display those little windows with available options. As for PyAlaMode, it exhibits a much weirder behavior, I think I'll stop using it. Cheers _______________________________________________ Tutor maillist - Tutor@python.org http://mail.python.org/mailman/listinfo/tutor