title: Decorators - Function With Parameters
body: <p>why do we pass the parameters to the wrapper function too?</p>
  <pre><code>def shout(fn):
      def wrapper(*args, **kwargs):
          return fn(*args, **kwargs).upper()
      return wrapper
  
  @shout
  def greet(name):
      return f&quot;Hi Iam {name}&quot;
  
  print(greet('Hoss'))
  </code></pre>
  <p>why not just in fn() (i mean inside the shout function)</p>