def mydec(func, decor_param_a, decor_param_b): print 'decor_param_a = %s' % decor_param_a def wrapper(*args, **kwargs): print 'about to run function' res = func(*args, **kwargs) print 'done running function' return res return wrapper
@mydecor('foo', 'bar') def baz(): pass
* decorate a class
* decorate a method
* have arguments
* have no arguments
extremely contrived example:
http://pastebin.com/GBuYL2af
Note that the above only works for 'new style' classes (otherwise the type signature is not 'type').
edit: dumped code in a pastebin. it got kind of long.