title: TypeError: fun() takes at least 2 arguments (3 given)
body: <p>This is my code:</p>
  
  <pre><code>def fun(x, y, b=None, c=None): 
      print(x,' ',y,' ',b,' ',c)
  </code></pre>
  
  <p>I am calling it as <code>fun(1, b=2, c=4)</code> and getting error <code>TypeError: fun() takes at least 2 arguments (3 given)</code>.
  I know this error is because of incorrect number of positional and keyword arguments.</p>
  
  <p>Instead of this, I want whenever I call my function with incorrect no. of arguments, it should tell me which argument is provided.
  For example: for above case it should say something like "argument y is nor provided".</p>
  
  <p>Can I write a decorator for this purpose?</p>