Hacker News new | ask | show | jobs
by IgorPartola 5385 days ago
It's easy:

  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
Now just do:

  @mydecor('foo', 'bar')
  def baz():
      pass
1 comments

It is a bit more work if you want to create a decorator that can:

* 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.