title: Python decorators with *args and **kwargs failing to execute with error message about too many positional arguments
body: <p>Any article, tutorial, etc. I have read on writing decorators in Python has pointed me to using *args and **kwargs to write decorators which can be applied to any function and / or method (including <a href="https://stackoverflow.com/questions/739654/how-can-i-make-a-chain-of-function-decorators-in-python">this great introduction</a>).</p>
  
  <p>However I now have the following code:</p>
  
  <pre><code>def format_result(func):
      @wraps(func)
      def func_wrapper(*args, **kwargs):
          result = func(*args, **kwargs)
          # do something with result
          return result
  
      return func_wrapper
  </code></pre>
  
  <p>Which I then use as follows:</p>
  
  <pre><code>class CategoryList(BaseResource):
      '''List or create categories'''
  
      @format_result
      def get(self):
          '''Create a new category'''
          return {'id': 1, 'name': 'Test Category'}
  </code></pre>
  
  <p>When using this code in my application, I always receive the following error message:</p>
  
  <pre><code>File "...\__init__.py", line 66, in func_wrapper
      result = func(*args, **kwargs)
  TypeError: get() takes 1 positional argument but 2 were given
  </code></pre>
  
  <p>Am I doing something wrong? If relevant, my python -V is "Python 3.5.1".</p>
  
  <p>Thank you very much in advance!</p>