[Baypiggies] black magic question
Mark C. Brighton
mbrighton at neuropace.com
Mon Dec 5 19:45:37 CET 2005
I have a problem that probably has a simple answer, but it's been vexing me.
I'm looking for a way to log an object's method calls and their results. Right now each method has a section of boiler-plate code that logs the method name, arguments, and results. It's cluttered and hard to maintain. It seems like a prime place to use a metaclass or decorator. The Python Cookbook (great book btw) has a recipe for this in section 20.6 (and using metaclasses in 20.7). I've tried it, and it works, except.... the object "looses" the method's argument information. For most objects, this isn't a problem, but we use this object interactively from the interpreter. If I were to make the tool tips unhelpful, I would immediately get complaints from my coworkers; and to be honest, I wouldn't like it either.
So is there a way to use decorators (or the like) to add functionality around a class without obscuring its signature?
thanks in advance,
More information about the Baypiggies